CMake(Cross-Platform Makefile Generator)是一个用于构建、测试和打包软件项目的开源工具。它提供了一个平台无关的方式来描述项目的构建过程,使得项目能够在不同的操作系统和编译器上进行构建。以下是 CMake 的一些主要用途:
跨平台构建: CMake 允许开发者在不同的操作系统上使用相同的 CMakeLists.txt 文件来定义项目的构建过程。这使得项目在不同的平台上能够更容易地进行构建,而不必手动调整构建脚本。
多编译器支持: CMake 支持多种编译器,包括 GCC、Clang、Visual Studio 等。这意味着你可以使用 CMake 来管理项目,而无需担心在不同的编译器上的构建差异。
简化构建过程: CMake 提供了一种简化和抽象构建过程的方式。通过使用高级的 CMake 命令和变量,开发者可以更轻松地管理源文件、库和可执行文件。
模块化开发: CMake 支持模块化开发,允许项目被分割为多个模块,每个模块都可以有自己的 CMake 配置。这有助于更好地组织大型项目。
外部依赖管理: CMake 支持管理项目所依赖的外部库和工具。它可以用来查找、配置和构建这些依赖项,使得整个项目的依赖管理更加方便。
生成器和 IDE 集成: CMake 生成与平台相关的构建文件,如 Makefile、Visual Studio 项目文件等。这样,开发者可以选择使用他们喜欢的集成开发环境(IDE)或构建系统进行开发。
总体而言,CMake 提供了一个灵活且强大的构建系统,使得软件项目能够更容易地在不同的平台上进行开发、测试和部署。
创建项目目录
mkdir testmake
cd testmake
//cmake构建必须的基础文件
vi? CMakeLists.txt
添加内容
PROJECT (HELLO)
ADD_EXECUTABLE(hello src/main.cpp)
创建构建目录,用来放生成的文件
mkdir build
cd build
cmake ..
从根目录显示文件结构,蓝色是初始文件,红色是构建后生成的文件
main.cpp内容
#include <iostream>
using namespace std;
int main()
{
cout << "Hello, world!" << endl;
return 0;
}
?运行生成的可执行文件打印出:Hello, world!
命令解析
PROJECT ():定义一个项目名
ADD_EXECUTABLE(可执行的文件名? 可执行的源文件)