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 的强大功能。


分享一个有趣的 学习链接


目录
相关文章
|
2月前
|
程序员 API 数据库
【Cmake工程 库相关教程 】深入理解CMake工程C/C++ 库管理技巧
【Cmake工程 库相关教程 】深入理解CMake工程C/C++ 库管理技巧
95 1
|
1月前
|
Python Windows
一步步教你将包含其他文件的 Python 脚本等打包成 EXE
最近我编写了一个Python脚本,该脚本需要依赖两个同级目录下的文件才能正常运行。然而,当我将脚本打包成EXE程序后,必须将这两个文件放在EXE文件的同级目录下才能正常执行。为了简化部署,我希望能将这两个文件一起打包到EXE文件中,这时候该怎么办呢?
|
2月前
|
人工智能 编译器 C++
新版Qt6快速打包程序脚本
不知道啥时候Qt更新了,目前是6.7.0,项目默认的生成路径改了, 从 项目目录的同级目录 改为了 项目目录中的build目录, 之前的脚本也用不了了,所以用AI更新了一下脚本, 希望能帮到大家,方便快速打包程序到桌面。
64 9
|
2月前
|
测试技术
使用CLion创建Cmake项目,使用GoogleTest和GoogleMock对代码进行测试
使用CLion创建Cmake项目,使用GoogleTest和GoogleMock对代码进行测试
62 3
|
7月前
|
安全 Python
Python环境配置及基础用法&Pycharm库安装与背景设置及避免Venv文件夹
Python环境配置及基础用法&Pycharm库安装与背景设置及避免Venv文件夹
125 1
|
2月前
|
Python
【python实操】安装软件时候选择文件安装目录模块的实现方法
【python实操】安装软件时候选择文件安装目录模块的实现方法
43 0
|
2月前
|
Rust C语言
rust安装 -自定义安装路径和GCC安装
rust安装 -自定义安装路径和GCC安装
154 0
|
8月前
|
XML 运维 数据可视化
使用cmake 构建构建新项目的时候,编译提示库找不到怎么办?
以上是一些常见的解决方案,但具体解决方案可能因具体情况而异。如果以上解决方案无法解决问题,请提供更多详细信息,留在评论区,以便博主更好地帮助您解决问题。
154 0
|
8月前
|
C++
03 C++ - CLion创建程序
03 C++ - CLion创建程序
73 0
|
Python
python导出项目所依赖的所有的库文件以及安装
python导出项目所依赖的所有的库文件以及安装
162 0