使用CMake编译C/C++程序(转载)

官方手册

CMake Tutorial
CMake Reference

作用

定义程序编译规则

基本流程

  1. 编写CMakeLists.txt
  2. 通过cmake生成Makefile
  3. make编译

编写CMakeLists.txt

生成可执行文件的最简单版本的CMakeLists.txt

# 规定该CMakeLists.txt适用的cmake最小版本,这里是 3.10
cmake_minimum_required(VERSION 3.10)

# 相当于visual studio项目名称,这里是 Tutorial
project(Tutorial)

# 定义生成的可执行文件(程序)的名称,
# 相当于visual studio项目属性中的目标文件名,
# 这里是 Tutorial
# 用${PROJECT_NAME}替代,即可执行文件名称等于项目名称
# 和加入编译的源文件路径列表,路径相对于`CMakeLists.txt`所在目录,
# 相当于visual studio项目解决方案资源管理器中列出来的文件,这里是 tutroial.c
add_executable(Tutorial tutorial.c)

以上CMakeLists.txt定义的编译规则是将源文件tutorial.c编译成名为 Tutorial 的可执行文件。

常用语句

add_definitions() # 相当于visual studio项目属性中C/C++-预处理器-预处理器定义
include_directories() # 相当于visual studio项目属性中C/C++-常规-附加包含目录
link_directories() # 相当于visual studio项目属性中链接器-常规-附加库目录
link_libraries() # 相当于visual studio项目属性中链接器-输入-附加依赖项
set(A B) # 定义变量A内容为B
${A} # ${A}使用变量A,如上面${PROJECT_NAME}
file(GLOB SRC_FILE *.c) # 定义SRC_FILE为当前目录下后缀为c的文件列表
aux_source_directory(./ SRC_FILES) # 定义SRC_FILES为当前目录下的所有源文件列表,./ 表示当前目录, ../表示上级目录
message(STATUS ${A}) #输出消息 内容为变量A的值

通过cmake生成Makefile

Usage
  cmake [options] <path-to-source>
  cmake [options] <path-to-existing-build>
  cmake [options] -S <path-to-source> -B <path-to-build>

一般用法是,新建一个文件夹,一般命名为build,在终端进入该文件夹,然后调用cmake ../cmake会在找到上级目录找到CMakeLists.txt,生成makefile和一些其它文件。

make编译

Makefile所在目录,调用make命令,会根据Makefile对程序进行编译生成。

参考文件(原文链接)

  1. 使用CMake编译C/C++程序
  2. 用VSCode和CMake编写调试C/C++
posted @ 2022-05-11 16:07  时间的风景  阅读(701)  评论(0编辑  收藏  举报