我正在寻找一个好的,易于维护的便携式C++项目构建系统。主要平台应该包括Windows (Visual 8+)和Linux (gcc);Cygwin可能是一个优势。我们正在考虑两种主要的可能性:CMake和Boost.Jam。SCons也是一种选择,但我还没有对它进行调查。CMake和Boost.Jam似乎具有以下特点:
CMake:
F 213/code>
Boost.Jam:
solutions/projects
(+)
本身没有中间步骤,
(-)不会生成本机
简洁的语言,类似于经典的makefile
(+)对多线程和静态/动态库
等属性的直观支持。
什么是其他的可能性,什么是真正更好的经验后?什么构建系统可以在途中创建一个解决方案?
发布于 2010-07-28 08:14:52
(-)要求每个项目文件夹中都有一个配置文件
这是不正确的,你只需要通过更大的路径,例如:
add_program(foo src/foo.cpp src/main.cpp)很少有关于Boost.Jam的注释--首先,它本身并不是Boost.Jam - bjam本身,您正在寻找的是Boost.Build,它是一组使bjam有用的Jam宏。
现在,我与两者一起工作,我必须承认,Boost.Build不适合于任何严肃的项目之外的提升本身。需要找图书馆吗?不需要找到标题吗?不能。需要做一些简单的构建之外的事情-而你不知道如何将它作为BB文档.完全没用,也许能覆盖10%的BB。所以大多数情况下你需要在BB邮件列表中问问题.
因此,如果您有一些复杂的项目--您需要做一些比简单编译和链接更多的事情,请远离Boost.Build。
因此,如果您需要支持MSVC,我今天发现CMake是唯一可行的选择。
我不知道CMake是一个很好的系统,它有很多问题,但是它最适合跨平台开发(如果您需要支持MSVC)。
如果你不关心MSVC,也不喜欢MinGW.也可以看一下自动工具。
关于斯堪的纳维亚--他们还不太成熟,CMake。
发布于 2012-05-25 10:35:46
这有点夸张,但我会尽量保持客观,只报告我的经历:
我已经尝试过几次CMake,我即将达到这样的程度:我将自愿为每个构建环境维护单独的项目文件,或者滥用另一种语言的构建系统(Ant、NAnt、MSBuild等)来编译和打包我的C++项目。
CMake是这样的:
(CMakeLists.txt)
的一致性)。
我个人的观点是,即使有人有意设计最糟糕的跨平台构建系统,也很难做比CMake更糟糕的事情。
我对Boost.Build没有任何经验,它很可能也有同样严重的缺点,但关于CMake,我能说的最好的是,如果您只关心以某种方式构建一些源文件,它就可以完成任务--尽管对开发人员和库/应用程序使用者来说会带来很大的痛苦。
发布于 2010-07-28 04:33:51
我对premake4:http://industriousone.com/premake有过一些很好的体验
更新
我仍然喜欢预制片,但经过一段时间的工作后,我觉得有义务列出我在其中发现的一些缺点:
不支持
https://stackoverflow.com/questions/3349956
复制相似问题