引言
CMake 是一个跨平台的安装(编译)工具,它可以用来管理软件的开发过程,自动检测系统的环境,配置编译选项,编译源代码等。对于新手来说,CMake 可能有些复杂,但通过实例学习,可以更快地掌握其使用方法。本文将从一个简单的实例开始,逐步深入,帮助你轻松构建项目。
一、CMake 简介
1.1 CMake 的作用
CMake 的主要作用是:
自动化编译过程
管理项目依赖
生成编译配置文件
1.2 CMake 的优势
跨平台:CMake 可以在多种操作系统上使用,如 Windows、Linux、macOS 等。
可扩展性:CMake 支持自定义构建规则,可以满足各种复杂的需求。
易于使用:CMake 的语法简洁,易于学习。
二、创建第一个 CMake 项目
2.1 创建项目文件夹
首先,创建一个项目文件夹,例如
my_cmake_project
。
2.2 编写 CMakeLists.txt 文件
在项目文件夹中创建一个名为
CMakeLists.txt
的文件,这是 CMake 的核心文件,用于定义项目信息和构建规则。
以下是一个简单的
CMakeLists.txt
文件示例:
cmake_minimum_required(VERSION 3.10)
project(MyCmakeProject)
add_executable(MyCmakeProject main.cpp)
target_link_libraries(MyCmakeProject
PUBLIC
${Boost_LIBRARIES}
)
2.3 编写源代码
在项目文件夹中创建一个名为
main.cpp
的文件,并编写简单的源代码:
#include
using namespace std;
int main() {
cout << "Hello, World!" << endl;
return 0;
}
2.4 编译项目
在命令行中,进入项目文件夹,然后运行以下命令:
cmake .
make
这将生成可执行文件
MyCmakeProject
。
三、CMake 实战技巧
3.1 管理项目依赖
在 CMake 中,可以使用
find_package
命令来查找和链接第三方库。以下是一个查找和链接 Boost 库的示例:
find_package(Boost COMPONENTS system thread REQUIRED)
include_directories(${Boost_INCLUDE_DIRS})
target_link_libraries(MyCmakeProject PUBLIC ${Boost_LIBRARIES})
3.2 自定义构建规则
CMake 支持自定义构建规则,可以使用
add_custom_command
命令来实现。以下是一个示例:
add_custom_command(
OUTPUT
${CMAKE_CURRENT_BINARY_DIR}/output.txt
COMMAND
echo "Hello, World!" > ${CMAKE_CURRENT_BINARY_DIR}/output.txt
)
这个示例会生成一个名为
output.txt
的文件,其内容为 “Hello, World!“。
四、总结
本文从 CMake 的简介开始,通过一个简单的实例,介绍了如何创建和使用 CMake 项目。此外,还提供了一些实战技巧,帮助读者更好地掌握 CMake。希望这篇文章能够帮助你快速入门 CMake,并在实际项目中使用它。