我不是在谈论制作可移植代码。这更多的是一个分配问题。我有一个中型项目。它对常用库有几个依赖项(例如 openssl、zlib 等)。它在我的机器上编译得很好,现在是时候将它呈现给世界了。
本质上是构建最好的工程。我想制作适用于 Windows、Linux、MacOSX 等的安装程序。我想制作一个可下载的 tar 球,使代码能够与./configure
and a make
(可能通过 autoconf)。如果有一个 make 选项可以构建安装程序,那将是锦上添花……甚至可以交叉编译,以便可以在 Linux 中构建 Windows 安装程序。
最好的策略是什么?我可以在哪里花费最多的时间?主要焦点应该是 autoconf 还是有其他可以提供帮助的工具?
我会推荐CMake http://cmake.org。优点:
- 它非常易于使用静态库、动态库、可执行文件及其依赖项构建简单和复杂的项目。
- 它是独立于平台的,并为大多数编译器和 IDE 生成 makefile 和/或 ide 项目文件。
- 它抽象了windows和unix之间的差异,例如“libShared.so”和“Shared.dll”被称为“Shared”(cmake处理每个平台的名称差异),如果Shared是您项目的一部分,它会整理出如果不是,则假定它位于链接器路径中。
- 它会调查用户系统中所需的编译器和第三方库,然后您可以选择在第三方库不可用时删除组件或显示错误消息(它附带宏来查找最常见的第三方库)。
- 它可以从命令行运行,也可以使用简单的 GUI 运行,使用户能够更改上面发现的任何参数(例如编译器或第 3 方库的版本)。
- 它支持用于自动化常见步骤的宏。
- 有一个名为 CPack 的组件,可以让您创建安装程序,我认为这只是一个
make install
命令行的东西(我没用过)。
- CTest 组件与其他单元测试库集成,例如 boost test 或 google test。
我现在使用 CMake 处理所有事情,甚至使用 Visual Studio 进行简单的测试项目。
我从未使用过 autotools,但很多其他用户评论说 cmake 更容易使用。由于这个原因,KDE 项目从 autotools 迁移到了 cmake。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)