CMake学习(一)
1、简介
CMake是一个强大的软件构建系统,可以用简单的语句来描述所有平台的安装(编译过程)
可以编译源代码、制作程序库、产生适配器(wrapper)、还可以用任意的顺序建构执行档
https://cmake.org/
2、构建基础项目
最基础的 CMake 项目是由单个源代码文件构建的可执行文件
对于这种简单的需求,我们所需要用到的仅仅是一个名为CMakeLists.txt
的文件以及三条命令
cmake_minimum_required()
任何项目最顶层的CMakeLists.txt
文件必须以cmake_minimum_required()
命令开头,用来指定最小支持的CMake版本
这将建立策略设置,并确保随后编写的CMake配置能够在兼容的CMake版本下执行
project()
如果想要启动一个项目,那么就使用project()
来设置项目的名称
每个项目都需要调用该命令,并且应在 make_minimum_required()
之后尽快调用
除此以外,该命令还可用于指定其他项目级信息,如语言或版本号
add_executable()
add_executable()
命令告诉 CMake 使用指定的源代码文件创建一个可执行文件
2.1、文件配置
直接创建一个目录cmake_demos,里面只放两个文件,一个是源代码文件main.cpp
,另一个是CMake的配置文件CMakeLists.txt
main.cpp文件中是简单的C++代码
#include<iostream>
int main()
{
std::cout << "Hello, CMake!" << std::endl;
}
而CMakeLists.txt
依照以上内容进行一些项目配置
# 指定最低支持的CMake版本
cmake_minimum_required(VERSION 3.10)
# 设置项目名称
project(Beginner)
# 将指定源文件编译成可执行文件
add_executable(App main.cpp)
简单看下我们的配置,首先,声明了支持的CMake版本最低支持到3.10,因此低于该版本的CMake无法执行构建任务
后面紧接着声明了项目名称,此时项目名称会被存储到PROJECT_NAME
变量当中,如果当前是顶层的CMakeLists.txt
,还会存储到CMAKE_PROJECT_NAME
变量中
最后一句则是表示根据当前目录下的main.cpp
源文件生成名为App
的可执行文件
2.2、构建执行
理解了配置的含义,接下来开始正式进行项目的构建吧~~
首先,在当前目录创建一个build
目录,之后构建的文件会放到这里面
然后打开终端,导航到build
目录下
执行cmake ..
,意思是对上级目录里的内容进行项目配置,生成一个本地的构建系统
此时,build
目录下会多出一大堆东西
然后,是真正的构建环节,根据配置对项目进行编译链接,执行cmake --build .
命令,基于当前目录生成的内容进行构建,并生成可执行文件
此时,可执行文件会出现在Debug
目录下
执行App.exe
,正是main.cpp
里面我们编写的功能
此时,一个最小型的CMake项目就已经构建完成了