Cmake 构建程序
CMake 是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建程序,可以产生标准的构建文件,如 Unix 的 Makefile。CMakeLists.txt 需要手工编写,也可以通过编写脚本进行半自动的生成。CMake 提供了比 autoconfig 更简洁的语法。在 linux 平台下使用 CMake 生成 Makefile 并编译的流程如下:
- 编写 CmakeLists.txt。
- 执行命令“cmake PATH”或者“ccmake PATH”生成 Makefile ( PATH 是 CMakeLists.txt 所在的目录 )。
- 使用 make 命令进行编译。
(一)入门使用
假设有源文件main.cpp:
#include<iostream>
using namespace std;
int main(){
cout<<"Hello Cmake!"<<endl;
return 0;
}
在Linux下编译该文件,可以使用命令g++ main.cpp -o run
就可一编译并生成命名为‘run’的可执行文件。
如何使用Cmake来实现上述的功能呢?
1. 编写CmakeLists.txt文件
PROJECT(MAIN)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
AUX_SOURCE_DIRECTORY(. SRC)
ADD_EXECUTABLE(MAIN $SRC)
一个简单的CmakeLists.txt文件就包含这几行(不区分大小写)。分析一下,第一行指定该工程的名字,括号中的名字自己取一个即可;第二行限定使用cmake的最低版本,Ubuntu14.04自带的是2.8;第三行就是需要编译的源文件路径了,例子中是把当前路径(.)设为源文件路径并赋值给变量SRC;第四行,把变量SRC下的源文件编译生成可执行文件MAIN(可以任意命名)。
2. 把CmakeLists.txt文件放在main.cpp相同的路径下,执行cmake .
,cmake 就会自动在当前路径寻找CmakeLists.txt文件并编译,生成MakeFile文件。
3. 依然在相同的路径下,执行make
,可以看到生成了可执行文件‘MAIN’
多源文件处理和添加链接库的使用待续…