目录
CMake 是一个跨平台的自动化构建系统,用于管理软件构建过程。它使用一个名为 CMakeLists.txt
的文本文件来描述构建过程所需的各种指令。CMake 可以生成多种构建系统的文件,如 Makefiles、Xcode 项目文件等,从而简化了跨平台的软件开发。以下是详细的 CMake 教程,包括安装、基本用法和常见任务。
1. 安装 CMake
Windows
- 访问 CMake 的官方网站 cmake.org。
- 下载适合 Windows 的安装程序。
- 运行安装程序并按照提示进行安装。
macOS
-
使用 Homebrew 安装:
bash深色版本
1brew install cmake
-
使用 MacPorts 安装:
bash深色版本
1sudo port install cmake
Linux
- 使用包管理器安装:
-
Debian/Ubuntu:
bash深色版本
1sudo apt-get install cmake
-
CentOS/RHEL:
bash深色版本
1sudo yum install cmake
-
Fedora:
bash深色版本
1sudo dnf install cmake
-
2. 基本用法
创建基本的 CMakeLists.txt 文件
创建一个简单的 CMakeLists.txt
文件,用于构建一个 C++ 程序:
cmake
深色版本
1cmake_minimum_required(VERSION 3.10)
2project(HelloWorld)
3
4add_executable(HelloWorld main.cpp)
解释基本指令
cmake_minimum_required
:指定 CMake 的最低版本要求。project
:定义项目名称。add_executable
:添加可执行文件,参数包括可执行文件的名字和要编译的源文件列表。
构建项目
-
创建构建目录:通常不在源码目录中直接构建,而是创建一个单独的构建目录。
bash深色版本
1mkdir build 2cd build
-
生成 Makefiles/Xcode 项目文件:
-
生成 Makefiles:
bash深色版本
1cmake ..
-
生成 Xcode 项目文件:
bash深色版本
1cmake -G Xcode ..
-
-
编译项目:
-
使用 Make:
bash深色版本
1make
-
使用 Ninja(如果安装了 Ninja):
bash深色版本
1cmake --build .
-
使用 Visual Studio(Windows):
bash深色版本
1cmake --build . --config Release
-
3. 常见任务
添加库
假设你需要链接一个外部库 libfoo
:
cmake
深色版本
1find_package(Foo REQUIRED)
2include_directories(${Foo_INCLUDE_DIRS})
3target_link_libraries(HelloWorld ${Foo_LIBRARIES})
设置编译选项
你可以设置编译器的警告级别和其他选项:
cmake
深色版本
1if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
2 add_definiti