主要内容:本文主要介绍了使用 cmake 编译和构建 C++ 程序的基础配置。所谓基础配置是指一个 CMakeLists.txt 文件通常需要包含哪些基本的要素能够构建出一个 C++ 程序。
官网教程所用到的文件可以在官网链接下载。
大部分项目是从源代码构建而来的可执行文件。对于简单的项目,三行CMakeLists.txt文件就能够满足要求。这是教程的起点。在Step1
目录中创建CMakeLists.txt文件,文件内容如下:
# 用于设置所允许的cmake最小版本号
cmake_mininum_required(VERSION 3.10)
# 设置项目的名字
project(Tutorial)
# 添加可执行文件
add_executable(Tutorial tutorial.cxx)
注意此 CMakeLists.txt
文件使用了小写形式的命令。cmake 支持大写、小写和大小写混合形式的命令。tutorial.cxx
是在Step1目录中的源代码文件,用于计算一个数的平方根。
所有需要做的就是构建和运行我们的项目。首先,运行cmake可执行命令或者cmake-gui来配置项目,然后用你所选择的构建工具构建项目。
例如,进入到cmake源代码树的所在目录Step1
,然后创建一个目录:
# mkdir Step1_build
之后,进入到Step1_build
目录(build目录),运行cmake来配置项目和生成原生的构建系统:
# cd Step1_build
# cmake ../Step1
然后调用构建系统来编译或链接这个项目:
# cmake —build ..
最后,执行以下 shell 命令使用刚构建的 Tutorial
:
./Tutorial 4294967296
指定c++标准
CMake 有一些特殊的变量用于构建项目代码。这些变量通常以 CMAKE_
开头。 CMAKE_CXX_STANDARD
和 CMAKE_CXX_STANDARD_REQUIRED
这两个变量用于指定项目所使用的 C++ 标准。
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
添加版本号和配置头文件
有时候我们想要在源代码中访问 CMakelists.txt
文件中定义的变量。实现这个需求的一种方式就是使用配置的头文件。我们在这个输入文件中定义多个需要被替换的变量,这些变量的语法是 @VAR@
。然后,使用 CMake 的 configure_file()
指令将输入拷贝到指定的输出文件,并且用 CMakelists.txt
文件中定义的变量