Cmake入门
CMake编译原理
CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多。CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序或共享库(so(shared object))。因此CMake的编译基本就两个步骤:
1 | cmake .. |
cmake 指向CMakeLists.txt所在的目录,例如cmake .. 表示CMakeLists.txt在当前目录的上一级目录。cmake后会生成很多编译的中间文件以及makefile文件,所以一般建议新建一个新的目录,专门用来编译,例如:
1 | mkdir build |
make根据生成makefile文件,编译程序。
使用Cmake编译程序
源码文件介绍
本文以一个例子入手介绍,即开平方。
1 | ├── CMakeLists.txt |
其中,src目录存放所有的源代码,即test_math.cpp、test_math.h和main.cpp。每个源代码文件内容如下:
test_math.h:
1 |
|
test_math.cpp:
1 |
|
main.cpp:
1 |
|
编写CMakeLists.txt
CMakeLists.txt文件,如下所示:
1 | #1.cmake verson,指定cmake版本 |
编译和运行程序
由于编译中出现许多中间的文件,因此最好新建一个独立的目录build,在该目录下进行编译,编译步骤如下所示:
1 | mkdir build |
build下生成的目录结构如下:
1 | ├── CMakeLists.txt |