CMake学习(一)

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++代码

cpp 复制代码
#include<iostream>
int main()
{
    std::cout << "Hello, CMake!" << std::endl;
}

CMakeLists.txt依照以上内容进行一些项目配置

cmake 复制代码
# 指定最低支持的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项目就已经构建完成了

相关推荐
林中青木9 分钟前
读写INI文件源码(点击关注)
c++·ini文件读取
running thunderbolt24 分钟前
项目---网络通信组件JsonRpc
linux·服务器·c语言·开发语言·网络·c++·性能优化
青岛少儿编程-王老师1 小时前
CCF编程能力等级认证GESP—C++6级—20250927
java·c++·算法
ajassi20001 小时前
开源 C++ QT QML 开发(十)通讯--串口
c++·qt·开源
Janspran1 小时前
监控系统2 - framebuffer
c++
代码AC不AC2 小时前
【C++】AVL树的模拟实现
c++·avl树·底层原理
_w_z_j_2 小时前
C++----bitmap位图的使用
开发语言·c++
BingeBlog2 小时前
[01] Qt的UI框架选择和对比
开发语言·c++·笔记·qt·ui·开源软件
greentea_20133 小时前
Codeforces Round 173 B. Digits(2043)
c++·算法
Q741_1474 小时前
C++ 位运算 高频面试考点 力扣 面试题 17.19. 消失的两个数字 题解 每日一题
c++·算法·leetcode·面试·位运算