C++ Beginner's Guide: Managing Your Project Using CMake
· 阅读需 7 分钟
作为一个 C++ 初学者,在学习基本语法和练习示例代码时,需要频繁使用 g++ ... input.cpp -o output && ./output
类似的命令编译和运行程序。虽然这种方式有助于熟悉 g++
,但是对于想要快速测试代码的新手来说,这种方式不够友好。
本文介绍如何利用 CMake 来管理一个 C++ 学习项目,帮助你快速实现编译和运行。
什么是 CMake?
简单来说,CMake 是一个跨平台的构建系统,它可以帮助你定义如何编译和链接你的项目,而不必关心具体的编译命令。CMake 会为你生成项目所需的 Makefile 或其他构建文件,所以你只需要关 心代码即可。
如何安装 CMake?
在 macOS 中可以直接通过 homebrew 安装:
brew install cmake
本文以 CMake 3.27.4 为例。 其他操作系统的安装方式,请参考 Getting and Installing CMake on Your Computer。
如何使用 CMake 管理项目?
每个使用 CMake 的项目都需要定义 CMakeLists.txt
文件,即 CMake 的配置文件,用于告诉 CMake 如何构建你的项目。使用 CMake 管理项目的常见流程为:
- 按需配置或更新
CMakeLists.txt
- 生成构建文件:CMake 会根据
CMakeLists.txt
配置并生成项目所需的构建文件 - 调试或运行项目
下面是一个 CMakeLists.txt
的示例:
cpp_learning/CMakeLists.txt
cmake_minimum_required(VERSION 3.26)
project(cpp_learning)
set(CMAKE_CXX_STANDARD 20)
add_executable(cpp_learning main.cpp)
cmake_minimum_required(VERSION 3.26)
:配置需要的最低 CMake 版本,例如3.26
。注意:CMakeLists.txt
的第一行必须是cmake_minimum_required
project(cpp_learning)
:配置项目名称,例如cpp_learning
set(CMAKE_CXX_STANDARD 20)
:配置 C++ 版本,例如20
add_executable(cpp_learning main.cpp)
:将main.cpp
编译为可执行文件cpp_learning
在学习 C++ 的过程中,我们需要编写非常多的程序。引入 CMake 之后,只需要在 CMakeLists.txt
中添加 add_executable
即可。例如 add_executable(hello hacking_cpp/hello.cpp)
将 hacking_cpp/hello.cpp
编译为可执行文件 hello
。
在配置 CMakeLists.txt
后,需要使用 cmake
命令生成构建文件。例如下面命令:
mkdir build # Create a directory for the build
cd build
cmake .. # Generate build files using CMake, .. indicates the parent directory where CMakeLists.txt is located
make # This will execute the build files and build the project