这篇文章主要介绍 CMake 的使用,看完这篇文章后,CMake 的绝大多数使用方法你都能掌握。本篇文章采用循序渐进的方法带你一步步逐渐进阶 CMake,通过多个示例,告诉你如何使用 CMake 解决常见的构建系统问题。
各位爱学习的朋友,收藏的同时点个赞行不,点赞的人多,这篇文章才能帮助到更多的人。
step0:环境配置
开始前说明一下,我的环境是 Windows10 + CMake + MinGW,MinGW 就是 GCC 的 Windows 移植版本。
环境安装我就不介绍了,不是这篇文章的重点,知乎有很多相关教程,这里提供相关工具下载链接:
- 构建工具:Download | CMake
- 编译工具:Downloads - MinGW-w64
需要注意的是,CMake 和 MinGW 安装好后,要手动添加到环境变量。
step 1:构建最小项目
最基本的项目是将一个源代码文件生成可执行文件。对于这么简单的项目,只需要一个三行的 CMakeLists.txt 文件即可,这是本篇教程的起点。在 step1 目录中创建一个 CMakeLists.txt 文件,如下所示:
cmake_minimum_required(VERSION 3.15)
# set the project name
project(Tutorial)
# add the executable
add_executable(Tutorial tutorial.cpp)
cmake_minimum_required 指定使用 CMake 的最低版本号,project 指定项目名称,add_executable 用来生成可执行文件,需要指定生成可执行文件的名称和相关源文件。
注意,此示例在 CMakeLists.txt 文件中使用小写命令。CMake 支持大写、小写和混合大小写命令。tutorial.cpp 文件在 step1 目录中,可用于计算数字的平方根。
// tutorial.cpp
#include <cmath>
#include <cstdlib>
#include <iostream>
#include <string>
int main(int argc, char* argv[])
{
if (argc < 2) {
std::cout << "Usage: " << argv[0] << " number" << std::endl;
return 1;
}
// convert input to double
const double inputValue = atof(argv[1]);
// calculate square root
const double outputValue = sqrt(inputValue);
std::cout << "The square root of " << inputValue
<< " is " << outputValue
<< std::endl;
return 0;
}
构建、编译和运行
现在就可以构建和运行我们的项目了,就是先运行 cmake 命令来构建项目,然后使用你选择的编译工具进行编译。
先从命令行进入到 step1 目录,并创建一个构建目