1. CMake
CMake的所有的语句都写在CMakeLists.txt的文件中
CMake编译的两个基本步骤:
cmake CMakeLists.txt
make
- CMake用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件
- make命令编译源码生成可执行程序或共享库(so(shared object))。
2. build
cmake命令必须指向CMakeLists.txt所在的目录。
但是,cmake命令后,会生成一些编译的中间文件以及makefile文件,所以建议新建一个新的目录build,用来存放生成结果。当需要重新cmake,删除build文件夹即可。
mkdir build
cd build
cmake .. //表示CMakeLists.txt在当前目录的上一级目录。
make
3. 设置变量
内部变量
CMAKE_C_COMPILER:指定C编译器
CMAKE_CXX_COMPILER:指定C++编译器
CMAKE_C_FLAGS:编译C文件时的优化选项,如-g;也可以通过add_definitions添加编译选项
CMAKE_CXX_FLAGS:编译C++文件时的优化选项
EXECUTABLE_OUTPUT_PATH:可执行文件的存放路径
LIBRARY_OUTPUT_PATH:库文件路径
CMAKE_BUILD_TYPE::build 类型(Debug, Release, …),如CMAKE_BUILD_TYPE=Debug
BUILD_SHARED_LIBS:在共享库和静态库之间切换
内部变量的设置方法:
- 在CMakeLists.txt中指定,使用SET
如:
SET(CMAKE_C_FLAGS_DEBUG “-O0”)
SET(CMAKE_CXX_FLAGS_DEBUG “-O0”)
- cmake命令中使用,-D
如:
cmake -DCMAKE_BUILD_TYPE=DEBUG \
-DCMAKE_C_FLAGS_DEBUG="-g -O0" \
-DCMAKE_CXX_FLAGS_DEBUG="-g -O0"