CMake的简单使用

前言

CMake 是一个跨平台的构建系统,被用于自动生成各种操作系统和编译器的构建文件。作为 C++ 开发人员,掌握 CMake 是必不可少的。它具有以下特点:

  1. 跨平台构建:CMake 支持 Windows、Linux、macOS 等多种操作系统。使用 CMake,你可以轻松地为不同平台生成构建文件,提高项目的可移植性。
  2. 编译器和构建工具的独立性:CMake 可以生成适用于不同编译器和构建工具的项目文件,例如 Visual Studio、Xcode、Makefile 等。这意味着你的项目可以在多种开发环境中使用,无需为每个环境编写特定的构建脚本。
  3. 简化构建过程:CMake 可以帮助你管理复杂项目的构建过程。它自动检测依赖关系、生成目标文件、编译静态库和动态库等。通过 CMake 配置文件(CMakeLists.txt),你可以灵活地控制整个构建过程,减轻手动管理的负担。
  4. 便于协作开发:使用 CMake 标准化项目的构建方式,有利于多人协作开发。团队成员只需遵循 CMakeLists.txt 的规则,即可轻松地构建和运行项目。
  5. 开源生态系统:CMake 是一个开源项目,有庞大的社区支持。许多开源库已经采用 CMake 作为构建系统,学习 CMake 可以更方便地集成和使用这些库。

​ 本文我们一起来了解一下 CMake 的简单使用方式。

正文

​ 这里以使用 CMake 构建一个简单的C++程序为例,带大家来认识 CMake 的简单使用方法。

创建源文件

​ 我们首先在工作目录下创建一个简单的名为main.cpp 的源文件,这个程序的效果是打印Hello CMake

// main.cc
#include <iostream>

int main()
{
    std::cout << "Hello CMake!" << std::endl;
    return 0;
}

编写 CMakeLists.txt 文件

​ 在目录下创建一个名为 CMakeLists.txt 的文件,并编写文件内容用于构建Hello CMake程序。

# 选择CMake的最低版本
cmake_minimum_required(VERSION 3.0)
# 项目名称
project(hello_cmake)
# 添加可执行文件
add_executable(hello_cmake main.cc)

​ 在这个文件中,我们指定了项目的最低 CMake 版本、项目名称和版本,然后添加了一个可执行文件 hello_cmake,它包含了我们的 main.cpp 源文件。除此之外,这里继续介绍一些常用的CMake命令:

  • project(): 定义项目名称和版本。
  • cmake_minimum_required(): 指定 CMake 的最低版本要求。
  • add_executable(): 生成可执行文件。
  • add_compile_options():添加编译选项,如-std=c++11、-lpthread等。
  • set():用于设置变量的值。它可以用来定义变量,并且可以是普通的源文件、列表、布尔值等。
  • add_library(): 生成库文件。
  • target_link_libraries(): 链接库文件。
  • include_directories(): 添加头文件目录。
  • find_package(): 寻找并加载外部库。
  • install(): 定义安装规则。

​ 我们可以使用这些命令编写CMakeLists.txt 文件,以此来达到我们想要的项目构建效果。

使用CMake构建项目

​ 现在我们完成了源文件以及CMakeLists.txt的编写,然后我们打开终端并进入项目目录,执行以下命令:

#cmake CMakeLists.txt所在的目录
cmake .          # 生成标准的构建文件,我们在Linux环境下就是Makefile
make             # 使用构建出的Makefile编译中间文件,生成可执行文件
./hello_cmake    # 运行可执行文件
				 #运行结果: Hello CMake!

​ 于是我们就使用CMake编译并生成了一个C++程序。

创建build目录(小技巧)

​ 当我们使用CMake进行上述的项目构建时,我们发现CMake在工作目录下生成了许多中间文件:
在这里插入图片描述
​ 这些文件与源文件混合起来,看上去会有一些不美观。那么为了保持项目目录的整洁,你可以在项目文件夹中创建一个名为 build 的目录,用于保存生成的中间文件和可执行文件。这样,你只需在 build 目录中运行 cmake .. && make 命令,就可以生成可执行文件:

build文件夹:
在这里插入图片描述

项目文件夹:
在这里插入图片描述
​ 于是我们就将CMake使用过程中产生的中间文件以及可执行文件放在了build目录中。

结语

​ 以上就是本文的主要内容,结合上述内容我们就可以使用CMake进行一些常规的项目构建操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发呆的yui~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值