介绍
CMake 是一种跨平台的开源工具,用于使用独立于编译器的方法来管理软件的构建过程。 CMake 生成可在您选择的编译器环境中使用的本机 makefile 和工作区。
优点
• 从简单的配置文件生成本机构建环境(Unix makefile、Visual Studio 项目、Xcode 项目等)。
• 查找和使用第三方库。 CMake 自带模块来查找流行的库,如 Boost、OpenSSL、Python 等。您也可以编写自己的查找模块。
• 为您的项目创建安装程序。 CMake 可以生成 makefile 和项目来为 Linux、Windows 和 macOS 等平台创建安装程序。
• 支持就地和外源构建。
• 通过一次CMake 调用生成构建的调试和发布版本。
• 为几个主要的 IDE 配置文件,如 Visual Studio、XCode、Eclipse 等。
安装
apt安装卸载
1
2sudo apt install cmake
sudo apt autoremove cmake官网找到指定版本文件下载安装到指定的目录或者源码编译
命令
1 |
CMakeLists.txt
CMakeLists.txt 文件是使用 CMake 时项目的构建规范。 它们包含构建项目所需的所有命令和配置设置。
一个基本的 CMakeLists.txt 文件包含如下内容:
- 指定所需的最低 CMake 版本
- 添加子目录
- 链接库
- 指定编译器标志
- 添加可执行文件和测试目标
- 和更多…
CMakeLists.txt 文件的结构通常如下所示:
制作
设置最低 CMake 版本
cmake_minimum_required(版本 3.10)
添加子目录
添加子目录(src)
链接一些库
查找包(OpenSSL)
target_link_libraries(我的目标 OpenSSL::SSL)
添加可执行文件
add_executable(myprogram src/main.c)
添加测试
add_test(命名我的测试命令我的程序)
CMakeLists.txt 文件中使用的一些常用命令是:
- project() - 定义项目名称和版本
- add_executable() - 添加一个可执行目标
- add_library() - 添加库目标
- find_package() - 查找外部库
- target_link_libraries() - 将目标链接到库
- add_subdirectory() - 添加一个带有自己的 CMakeLists.txt 的子目录
- add_test() - 添加测试目标
- set() - 设置一个变量
- option() - 提供一个选项供用户选择
- include_directories() - 添加包含目录
- add_definitions() - 添加预处理器定义
还有很多。 CMake 有很多有用的内置命令和函数来配置您的构建。
CMakeLists.txt 文件本质上充当项目的构建脚本。 它们应该被编写为可跨平台和编译器移植。 通过编写与平台无关的 CMake 构建规范,您可以使用 CMake 生成本机 makefile、Visual Studio 解决方案、Xcode 项目等以构建您的项目。