CMake目录结构:项目主目录存在一个CMakeLists.txt文件
两种方式设置编译规则:

  • 包含源文件的子文件夹包含CMakeLists.txt文件,主目录的CMakeLists.txt通过add_subdirectory添加子目录即可
  • 包含源文件的子文件夹未包含CMakeLists.txt文件,子目录编译规则体现在主目录的CMakeLists.txt中

    1 编绎流程

  1. 编写CMakeLists.txt
  2. 执行命令 cmake PATH 生成Makefile (PATH是顶层CMakeLists.txt所在目录)
  3. 执行命令 make 进行编绎

    2 构建方式

    (1) 内部构建: 不推荐

    内部构建(in-source build)会在同级目录下产生一大堆中间文件,这些中间文件并不是我们最终所需要的,和工程源文件放在一起会显得杂乱无章
    1. # 在当前目录下,编译本目录的CMakeLists.txt,生成Makefile和其他文件
    2. cmake .
    3. # 执行make命令,生成target
    4. make

    (2) 外部构建: 推荐使用

    将编译输出文件与源文件放到不同目录中
    1. # 1. 在当前目录下,创建build文件夹
    2. mkdir build
    3. # 2. 进入到build文件夹
    4. cd build
    5. # 3. 编译上级目录的CMakeLists.txt,生成Makefile和其他文件
    6. cmake ..
    7. # 4. 执行make命令,生成target
    8. make