我是 Boost C++ 库的新手。我想知道 Boost bjam 是否比 GNU make 有任何优势?如果我使用 make 来使用 Boost.Python 库构建 C++ 代码,有什么缺点?
3 回答
到目前为止,对于构建 boost 本身,bjam 是要走的路。只需按照自述文件构建命令行即可。您可能(应该)在每个增强版本中只需要执行一次。
但是,没有必要将您自己的使用 boost 的项目绑定到 boost 的构建系统。
使用 gmake 构建使用 Boost.Python 的 C++ 代码并没有特别的缺点,优点是周围有很多使用 gmake 的示例。
如果您打算使用其他 Boost 库,那么使用 bjam 可能是有意义的,但是从简单的角度来看,对于一个复杂的项目来说,使用 make 非常复杂,这就是开发 ant 的原因。
Bjam 扩展了其他开始尝试替换 make 的项目。
但是,不利的一面是,在每个 unix 操作系统上都可以找到 make,bjam 不是,但是,如果您必须为您的项目使用 Boost 库,那么您可以确定它被包含在内。
对于您的项目,我认为 bjam 可能是最佳选择,但如果您正在编写一个其他人需要使用 ANSI C++ 编译的可移植项目,那么我建议您也支持 GNU Make。
我使用 Make 和 BJam 构建了团队共享的构建框架。我的最终意见是,一旦我了解了基本设置,bjam 实现就更容易维护。团队成员一开始可能会抗拒,但一旦他们使用它并看到它比 Make 简单得多(我的观点),他们就被说服了。有些人会继续反抗。您可以设置双重构建系统,但这是额外的努力。
当我被迫使用 Make 时,我使用中央规则集创建非递归 makefile 解决方案。BJam 内置了所有这些功能。