簡單的 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)

See it live on Coliru

  1. cmake_minimum_required(VERSION 2.4) 設定評估當前指令碼所需的最小 CMake 版本。

  2. project(hello_world) 啟動了一個新的 CMake 專案。這將觸發大量內部 CMake 邏輯,尤其是檢測預設的 C 和 C++編譯器。

  3. 使用 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