CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。
第一个示例,该实例中只包含一个 main.c 文件,文件结构如下:
00-hello-cmake/
├── CMakeLists.txt
└── main.c
CMakeLists.txt 就是 cmake 的核心规则,具体内容如下:
# cmake 最低版本设置
cmake_minimum_required(VERSION 3.5)
# 项目名称,project() 函数将创建一个值为 hello_cmake 的变量 ${PROJECT_NAME}
project (hello_cmake)
# add_executable() 命令指定应从指定的源文件(在此示例中为 main.c)构建可执行文件。
# add_executable() 函数的第一个参数是要构建的可执行文件的名称,第二个参数是要编译的源文件列表。
add_executable(hello main.c)
# 有些人使用的一种简写方式是让项目名称和可执行文件名称相同。
# 下面的语句,project() 函数将创建一个值为 hello_cmake 的变量 ${PROJECT_NAME}。然后可以将其传递给 add_executable() 函数以输出 hello_cmake 可执行文件。
# add_executable(${PROJECT_NAME} main.c)
构建过程:
1:mkdir build 创建该目录的目的是为了将编译产物和源文件分离
2:cd build && cmake .. cmake 后面第一个参数应该是 CMakeLists.txt 文件所在目录。此实例中 CMakeLists.txt 在 build 目录的上一级,所以使用 cmake ..
3:make
编译后的目录结构:
00-hello-cmake/
└── build
└── CMakeFiles
├── 3.16.3
│ ├── CompilerIdC
│ │ └── tmp
│ └── CompilerIdCXX
│ └── tmp
├── CMakeTmp
└── hello.dir
下一篇:https://blog.csdn.net/QCZL_CC/article/details/119825103。主要介绍如何包含头文件。