CMake记录(一)

CMake也用过几次了,这次打算系统的读一读官方文档,作一些记录。以后可以把源代码也看一下。

 

如果是找教程,想立即开始用CMake,则推荐CMake实践

 

1. CMake本身不是一个build process,而是调用本地build工具,如Make,甚至Visual Studio

2. CMake在cross-platform软件开发、维护过程中特别有用。

 

 

当我们写出了一些源文件后,它们之间极可能会有一些依赖关系。需求是:我们需要把这些文件make出binary--通常这样就够了。在Linux上,我们可能会使用make,先写一个Makefile来表明依赖关系,如:

   1: main.o: main.c main.h
   2:         cc -c main.c
   3: MyProgram: main.o
   4:         cc -o MyProgram main.o -lm -lz

嗯,问题解决了。但若有多个平台时呢?可能使用了不同的编译器,于是: 

cc : Command not found

即对编译器作出修改,嗯,效果不错,但可能新平台上没有 zlib,于是要把编译选项–lz去掉…如果还有另外一个库也有问题呢?逐个修改是不是太麻烦了?

 

Autoconf、Automake这时就可大展身手了,但是它们通常很复杂,以至于基本不想动用它们…而且,写啊写到最后可能会发现,不知什么时候我们已经在文件内写shell脚本了,悲剧的地方在于我们通常会对shell类型作假设,于是一段脚本可能在Bourne shell下是可以的,但在sh下就不能用了 - -!  也就是说这二位使用的工具中,有一些是平台相关的。

 

CMake登场了。与上面的工具不同,它对底层平面作了很少的假设,用标准C++写成,因此几乎可以在任何系统上运行,它所调用的工具也仅仅是本地的构建系统而已。

posted @ 2011-11-03 08:54  justin_s  阅读(255)  评论(0编辑  收藏  举报