CMake 命令行使用指南:创建构建目录与编译项目

简介: CMake 命令行使用指南:创建构建目录与编译项目

引言

CMake 是一个功能强大的构建系统,它允许开发者在多种平台上使用相同的配置文件来编译和管理项目。本文将介绍如何使用 CMake 命令行工具创建构建目录,并编译你的项目。同时,我们还将探讨如何通过扩展代码来增强 CMake 的构建过程。

CMake 简介

CMake 是一个跨平台的自动化构建工具,它使用 CMakeLists.txt 文件来配置项目构建。这个文件定义了项目的构建规则和目标。CMake 可以生成适用于不同平台的构建系统,如 Makefiles 或 Ninja。


创建构建目录

在项目根目录下,你可以使用以下命令来创建一个名为 build 的目录,并在其中生成构建文件:

cmake -B build -S .

这里的 -B build 选项指定了构建目录的名称,而 -S . 指定了源代码目录,即当前目录。

编译项目

一旦构建目录被创建,并且构建文件生成完毕,你可以进入该目录并使用以下命令来编译项目:

cd build
cmake --build .


这条命令会调用默认的构建工具(例如 makeninja),根据 CMakeLists.txt 文件中定义的规则来编译项目。

扩展 CMake 构建过程

CMake 提供了丰富的接口来扩展构建过程,包括添加自定义命令和目标。以下是一个扩展 CMakeLists.txt 文件的示例,它在构建过程中添加了自定义的清理命令:

cmake_minimum_required(VERSION 3.10)
project(MyProject)

# 添加可执行文件
add_executable(my_executable main.cpp)

# 添加自定义命令,用于在构建之前清理构建目录
add_custom_target(
    clean_build
    COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_BINARY_DIR}/* 
    COMMENT "Cleaning the build directory before building..."
)

# 将自定义命令添加到构建过程之前
add_dependencies(my_executable clean_build)

在这个示例中,我们定义了一个名为 clean_build 的自定义目标,它会在构建之前删除构建目录中的所有文件。然后,我们将这个自定义目标作为 my_executable 可执行文件的依赖项,确保在编译之前执行清理操作。

结语

CMake 的命令行工具提供了一种快速、灵活的方式来创建构建目录和编译项目。通过扩展代码,你可以定制构建过程,以满足项目特定的需求。希望这篇博客能帮助你更好地利用 CMake 的强大功能。


分享一个有趣的 学习链接


目录
相关文章
|
IDE Linux 开发工具
内存泄漏检测工具Valgrind:C++代码问题检测的利器(一)
内存泄漏检测工具Valgrind:C++代码问题检测的利器
2754 0
|
JSON 开发工具 C++
Windows下用CMake编译JsonCpp及配置(适合新手)
Windows下用CMake编译JsonCpp及配置(适合新手)
1223 0
|
前端开发 开发者 容器
|
编解码 Linux 编译器
使用 C++ 方式实现 GBK 到 UTF-8 转码 (win / linux)
使用 C++ 的方式处理在 Windows 平台和 Linux 平台,编码字符集从 GBK 到 UTF-8 转码,C++ 存在多种方式实现
3778 1
|
Linux 数据安全/隐私保护 Windows
更换(Pypi)pip源到国内镜像
pip国内的一些镜像 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.
247069 2
|
编译器 C语言
C语言编译详解:GCC分步编译与一次编译多个文件
C语言编译详解:GCC分步编译与一次编译多个文件
817 2
|
算法 编译器 C语言
【CMake install 命令】精通CMake安装:灵活、高效的构建和部署
【CMake install 命令】精通CMake安装:灵活、高效的构建和部署
3105 0
|
存储 缓存 数据管理
ceph存储 一文看懂目录配额(从入门到进阶,内涵完整流程和源码分析)
在Ceph文件系统(CephFS)中,目录配额是一项功能,它允许管理员限制特定目录下可以使用的存储空间总量和/或文件数量。这项功能对于控制资源消耗和防止个别用户或应用程序过度占用共享存储资源特别有用。
815 1
解决方案-CMake error: error in configuration process, project files may be invalid(Windows&VS可参考)
解决方案-CMake error: error in configuration process, project files may be invalid(Windows&VS可参考)
4234 0
|
程序员 Linux C语言
【cmake 项目依赖冲突】CMake进阶:优雅解决目标依赖和安装问题
【cmake 项目依赖冲突】CMake进阶:优雅解决目标依赖和安装问题
1558 0