tue*_*ist 10 c++ command-line build-process makefile
想象一下,您可以自由选择像GNU make这样的工具来实现新的C++项目.你会选择什么?有没有可用的替代品?
它应该/是
src/binJava的常见分离注意:
GNU make没什么问题.我只是不喜欢它的语法,这些年来增长的所有东西和愚蠢的递归都会产生问题.我现在用gmake多年了.
sou*_*rge 19
我用cmake,我很高兴我做了转换.
编辑
维基百科文章中的功能列表:
- 配置文件是CMake脚本,它使用专用于软件构建的编程语言
- 内置于C,C++,Fortran和Java的自动依赖性分析
- 通过CMake脚本语言支持SWIG,Qt
- 内置支持许多版本的Microsoft Visual Studio,包括版本6,7,7.1,8.0和9.0
- 为Eclipse CDT生成构建文件(C/C++开发工具)
- 使用传统时间戳检测文件内容更改,
- 支持并行构建
- 交叉编译
- 所有依赖关系的全局视图,使用CMake输出graphviz图
- 支持跨平台构建,并且已知可以继续使用
- Linux和其他POSIX系统(包括AIX,*BSD系统,HP-UX,IRIX/SGI和Solaris)
- Mac OS X.
- Windows 95/98/NT/2000/XP,Windows Vista和MinGW/MSYS
- 与DART(软件),CDash,CTest和CPack集成,这是一组用于软件测试和发布的工具
但说实话:几乎任何东西都比gnu工具链更好.
它具有您命名的功能
bin目录下的位置,具体取决于您命令的构建请求.如果您使用gcc 4.3.2,那么您将获得可执行文件
bin/gcc-4.3.2/debug - 执行时 bjambin/gcc-4.3.2/release - 执行时 bjam releasebin/gcc-4.3.2/release/inlining-off/threading-multi - 执行时 bjam release inlining=off threading=multibin/gcc-4.3.2/release/threading-multi- bjam release inlining=full threading=multi因为inlining = full是发布的默认值.Jamfile语法很简单,但功能强大;如果不是全部满足您的要求,CMake应该回答最多.
它会为您生成Makefile.
它具有良好的特定于域的原语,以及您需要执行特殊操作的简单语言.
它解决了递归make的大部分问题(参见递归make被认为是有害的文件).
它使用源外构建,因此您可以bin / src分离.
我发现它易于编写,易于维护和快速构建.
......加:
它是跨平台的.
使用CText和CDash,它具有设置持续集成服务所需的功能.
又见这个答案递归制作-朋友还是敌人?