CMake构建cpp代码的实践

CMake 是一个跨平台的构建系统生成器,它通过高级的配置文件(CMakeLists.txt)生成底层构建工具所需的文件(如 Make的Makefile)。他的主要作用就是组织cpp代码,生成make的Makefile文件用于编译,它支持多平台(Linux、Windows、macOS)和多编译器(GCC、Clang、MinGW)
我们的测试代码是cpp的,下面是我们的目录结构

├─build
│ └─cmake构建的产物
├─include
│ └─test.h
├─src
│ └─test.cpp
├─main.cpp
└─CMakeLists.txt

CMakeLists.txt用来描述我们的构建过程,我们使用cmake命令会根据CMakeLists.txt文件,生成对应的Makefile文件用于编译,要注意的对于不同的系统,cmake会选择不同的编译工具,比如在Windows中默认使用vs,这回生成sln文件没有Makefile文件了,不过我们可以使用-G选项来指定使用什么编译工具

下载安装

我们先来下载cmake,在Windows中需要去CMake官网下载,找到对应的msi文件下载即可,安装过程中一定要勾选上添加到环境变量,不然还需要我们自己添加很麻烦
对于Linux系统很简单sudo apt install cmake运行这个命令就可以了,如果使用的不是乌班图,换成其他对应的包管理工具即可

CMakeLists.txt文件讲解

下面是我们的CMakeLists.txt

cmake_minimum_required(VERSION 3.31.4)

project(cpp_study)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
  
file(GLOB SRC CONFIGURE_DEPENDS src/*.cpp)

add_executable(${PROJECT_NAME} main.cpp ${SRC})
target_include_directories(${PROJECT_NAME} PRIVATE include)

我们来逐行解释这个文件的内容
PROJECT_NAME是项目名称的变量,${}表示使用变量

  • cmake_minimum_required(VERSION 3.31.4) 指定cmake的最低版本
  • project(cpp_study) 设置我们的项目名称
  • set(CMAKE_CXX_STANDARD 11) 设置 C++ 编译器使用的标准为 C++11。
  • set(CMAKE_CXX_STANDARD_REQUIRED ON) 强制要求编译器支持 C++11 标准。如果不支持c++11会直接报错
  • file 搜索src目录下所有.cpp文件,并将结果存储在变量SRC中。
  • add_executable 用于创建可执行文件,这里定义一个名${PROJECT_NAME}的可执行目标,包含main.cpp和SRC中的源文件。
  • target_include_directories 为指定可执行文件添加头文件路径,确保编译器能够找到项目中使用的头文件。
    这短短几行代码就可以让,我们在不同操作系统不同编译器的环境下编译cpp代码,cmake真的是很强大的一个工具,使用下面的命令就可以构建编译我们的源码了,最后会在build文件夹内生成一个叫做cpp_study的可执行文件
# Windows 需要指定使用MinGW
cmake -G "MinGW Makefiles" -B build
mingw32-make -C build
  
# Linux/Mac
cmake -B build
make -C build

在运行上面的命令前一定要确保下载好了对应的编译工具链

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值