目录
实例概述
在本实例中,我们将通过一个简单的 C++ 项目来演示如何使用 CMake 进行构建。项目包含一个源文件 main.cpp
,编译后生成一个可执行文件。我们将创建一个基本的 CMakeLists.txt
文件,使用 CMake 生成构建文件,并最终编译和运行该项目。
项目结构
假设我们有以下简单的项目结构:
MyProject/
├── CMakeLists.txt
└── main.cpp
其中:
CMakeLists.txt
:CMake 配置文件。main.cpp
:C++ 源代码文件。
main.cpp
文件的内容如下:
#include <iostream>
int main() {
std::cout << "Hello, CMake!" << std::endl;
return 0;
}
CMakeLists.txt 详解
在 MyProject
目录下创建 CMakeLists.txt
文件,并添加以下内容:
cmake_minimum_required(VERSION 3.10) # 设置最低 CMake 版本要求
project(MyProject VERSION 1.0) # 设置项目名称和版本
# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
# 添加源文件
add_executable(MyExecutable main.cpp) # 生成可执行文件 MyExecutable
文件内容说明:
cmake_minimum_required(VERSION 3.10)
:指定该项目支持的最低 CMake 版本。project(MyProject VERSION 1.0)
:设置项目名称为MyProject
,版本为1.0
。set(CMAKE_CXX_STANDARD 11)
:设置 C++ 标准为 C++11。add_executable(MyExecutable main.cpp)
:编译main.cpp
文件,并生成名为MyExecutable
的可执行文件。
构建过程
1. 创建构建目录
在项目根目录下创建一个单独的构建目录,以保持源代码目录的整洁。
mkdir build
cd build
2. 运行 CMake 配置命令
在 build
目录中,运行以下命令来配置项目并生成构建文件(例如 Makefile 或 Visual Studio 工程文件):
cmake ..
该命令会让 CMake 查找项目根目录中的 CMakeLists.txt
文件,并生成适合当前平台的构建文件。
3. 编译项目
配置完成后,使用以下命令来编译项目。CMake 会调用底层构建工具(如 make
)来执行编译:
cmake --build .
这将会编译源代码并生成可执行文件 MyExecutable
。
4. 运行项目
编译完成后,执行生成的可执行文件:
./MyExecutable
输出:
Hello, CMake!
安装与清理
1. 安装项目(可选)
如果项目需要安装,可以在 CMakeLists.txt
中定义安装规则,并使用 cmake --install
命令进行安装。例如,假设你希望将可执行文件安装到 /usr/local/bin
目录,可以在 CMakeLists.txt
中添加以下内容:
install(TARGETS MyExecutable DESTINATION bin)
然后执行安装命令:
cmake --install .
2. 清理构建
如果你需要清理构建生成的文件,可以手动删除构建目录中的内容:
rm -rf build/*
或者,直接删除整个 build
目录并重新创建它:
rm -rf build
mkdir build
cd build
cmake ..
发表回复