简单的 Hello World 项目
给定定义 main()
函数的 C++源文件 main.cpp
,附带的 CMakeLists.txt
文件(具有以下内容)将指示 CMake 为当前系统和默认 C++编译器生成适当的构建指令。
main.cpp ( C++ Hello World 示例 )
#include <iostream>
int main()
{
std::cout << "Hello World!\n";
return 0;
}
CMakeLists.txt
cmake_minimum_required(VERSION 2.4)
project(hello_world)
add_executable(app main.cpp)
-
cmake_minimum_required(VERSION 2.4)
设置评估当前脚本所需的最小 CMake 版本。 -
project(hello_world)
启动了一个新的 CMake 项目。这将触发大量内部 CMake 逻辑,尤其是检测默认的 C 和 C++编译器。 -
使用
add_executable(app main.cpp)
创建一个构建目标app
,它将调用配置的编译器,并使用当前设置的一些默认标志来编译来自给定源文件main.cpp
的可执行文件app
。
命令行 (In-Source-Build,不推荐)
> cmake .
...
> cmake --build .
cmake .
执行编译器检测,评估给定 .
目录中的 CMakeLists.txt
,并在当前工作目录中生成构建环境。
cmake --build .
命令是必要的构建/调用调用的抽象。
命令行 (Out-of-source,推荐)
为了保持源代码不受任何构建工件的影响,你应该执行源外构建。
> mkdir build
> cd build
> cmake ..
> cmake --build .
或者 CMake 也可以从上面的示例中抽象出你的平台 shell 的基本命令:
> cmake -E make_directory build
> cmake -E chdir build cmake ..
> cmake --build build