​原文链接CMake 教程​

一、介绍

CMake 教程提供了一个分步指南,其涵盖了 CMake 构建过程中常见问题解决方案。查看示例项目中的各种主题如何协同工作会非常有帮助。示例的教程文档和源代码可以在 CMake 源代码树的目录​​Help/guide/tutorial​​中找到 。每个步骤都有自己的子目录,其中包含可用作起点的代码。教程示例是渐进式的,因此每个步骤都为上一步提供了完整的解决方案。

二、步骤1

大部分项目都是从源码构建可执行文件。下面我们将以一个简单项目做为教程的起点,其需要一个只包含三行内容的CMakeLists.txt文件。

2.1 tutorial.cxx

// A simple program that computes the square root of a number
#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;
}

2.2 ​​构建​

在​​Step1​​​目录中创建一个 ​​CMakeLists.txt​​文件,如下所示:

cmake_minimum_required(VERSION 3.10)

# set the project name
# 设置项目名称
project(Tutorial)

# add the executable
# 添加可执行文件
add_executable(Tutorial tutorial.cxx)

请注意,在此示例中,我们在​​CMakeLists.txt​​​文件中使用小写命令。CMake 是支持大写、小写和大小写混合命令。目录中​​tutorial.cxx​​​提供了 的源代码,​​Step1​​可用于计算数字的平方根。

​cmake_minimum_required(VERSION <min>[...<max>] [FATAL_ERROR])​​ 设置项目所需的最低 cmake 版本。


​project(<PROJECT-NAME> [<language-name>...])​​​ project(<PROJECT-NAME> [VERSION <major>[.<minor>[.<patch>[.<tweak>]]]] [DESCRIPTION <project-description-string>] [HOMEPAGE_URL <url-string>] [LANGUAGES <language-name>...]) 设置项目名称,并将其存储在变量PROJECT_NAME中。从顶层调用​​​CMakeLists.txt时​​还会将项目名称存储在变量CMAKE_PROJECT_NAME


​​link_directories, LINK_LIBRARIES, target_link_libraries使用总结​​

​​target_link_libraries 和link_libraries区别_日作诗歌三千首的博客