编译工具的选择

来源:互联网 发布:市政工程计算软件 编辑:程序博客网 时间:2024/05/16 06:46

在cmake、scons、autotools、typhoon-blade等众多编译工具中,经过多项比较,最终选择cmake。


选择的理由:
1、先说下工具之间的比较:
  • autotools学习曲线十分陡峭;
  • 跨平台的编译工具,其中最有名的两个是 cmake 和 scons ,cmake 之所以出名估计是因为 KDE 4 从 autotools 转向用 cmake 来编译,而 scons 则是 lighttpd 原来用的编译工具,它现在也转向 Python 了。cmake 和 python 大概代表了新一代跨平台编译工具的两种方向。第一种 (cmake) 是延续并改良传统 automake, autoconf 工具链,将之合为一体,但最终仍然生成 Makefile, Visual Studio 的 .sln,Xcode 的 .xcodebuild 文件,依赖现有编译工具 (make, nmake, vcbuild, xcodebuild) 来编译;第二种则是完全消除现有编译工具的调用,直接调用编译器,scons 就属于这一类 (scons 还有一个特点是完全不用专门的语言,控制编译的脚本就是 Python)。
  • typhoon-blade基于scons,不能生成原生makefile,但配置相对简单,貌似只支持linux,无法跨平台。(用了下,源文件居然只识别cpp,不识别cxx尴尬)
2、再说一下cmake的特色

  • 内置C语言C++FortranJava的自动相依性分析功能。
  • 经由CMake脚本语言支持SWIGQtFLTK
  • 内置对微软Visual Studio .NET和过去的Visual Studio版本的支持,可以产生.dsp、.sln和.vcproj文件。
  • 用传统的时间标签侦测文件内容的改变。
  • 支持平行建构(在多台电脑上同时建构)
  • 在许多操作系统上进行跨平台编译,包括 Linux、与POSIX兼容的系统(AIX*BSD系统HP-UXIRIXMinGW/MSYSSolaris)、Mac OS X和微软Windows 95/98/NT/2000/XP等。
  • 产生可以给Graphviz用的全局相依图。
  • 已经和DartCTestCPack等软件测试和发布的工具集成。
  • 众多使用者:详见http://zh.wikipedia.org/wiki/CMake

后记:
不过cmake后来没有用起来,windows下还是用virtual studio,linux下用eclipse CDT生成makefile了。可能还是不喜欢命令行,只喜欢UI界面。


0 0
原创粉丝点击