提供一个适当的 CMake 配置文件来使其他人可以更容易地构建、使用和贡献你的项目。
这篇文章是使用开源 DevOps 工具进行 C/C++ 开发系列文章的一部分。如果你从一开始就把你的项目建立在一个功能强大的工具链上,你的开发会更快和更安全。除此之外,这会使别人更容易地参与你的项目。在这篇文章中,我将搭建一个基于 CMake 和 VSCodium 的 C/C++ 构建系统。像往常一样,相关的示例代码可以在 GitHub 上找到。
我已经测试了在本文中描述的步骤。这是一种适用于所有平台的解决方案。
为什么用 CMake ?
CMake 是一个构建系统生成器,可以为你的项目创建 Makefile。乍一看简单的东西可能相当地复杂。在较高的层次上,你可以定义你的项目的各个部分(可执行文件、库)、编译选项(C/C++ 标准、优化、架构)、依赖关系项(头文件、库),和文件级的项目结构。CMake 使用的这些信息可以在文件 CMakeLists.txt
中获取,它使用一种特殊的描述性语言编写。当 CMake 处理这个文件时,它将自动地侦测在你的系统上已安装的编译器,并创建一个用于启动它的 Makefile 文件。
此外,在 CMakeLists.txt
中描述的配置,能够被很多编辑器读取,像 QtCreator、VSCodium/VSCode 或 Visual Studio 。
示例程序
我们的示例程序是一个简单的命令行工具:它接受一个整数来作为参数,输出一个从 1 到所提供输入值的范围内的随机排列的数字。
$ ./Producer 10
3 8 2 7 9 1 5 10 6 4
在我们的可执行文件中的 main()
函数,我们只处理输入的参数,如果没有提供一个值(或者一个不能被处理的值)的话,就退出程序。
int main(int argc, char** argv){
if (argc != 2) {
std::cerr