如何使用 Ninja 在 C++ 中编译 "Hello World"?

How to compile "Hello World" in C++ with Ninja?

我是 Ninja 新手。还是不知道怎么用。

我创建了一个简单的 hello.cpp 文件:

#include <iostream>
int main()
{
        std::cout << "Hello World!" << std::endl;
        return 0;
}

我正在使用 Linux Ubuntu.

我安装了 CMake:apt install cmake

并且我已经安装了 ninja:apt-get install ninja-build

但是现在我应该怎么做才能用 Ninja 编译我的 hello.cpp 文件?

我尝试 运行 ninja 但我收到关于 rules.ninja:

的错误
ninja: error: build.ninja:30: loading 'rules.ninja': No such file or directory

我不知道如何创建rules.ninja以及如何配置它,我不知道我是否错过了更多东西。

这里假设您根本没有 CMakeLists.txt 文件。要编译这个程序,你首先需要创建一个CMakeLists.txt文件。 CMake 使用此文件配置项目。

CMakeLists.txt(将其放在与源文件相同的文件夹中):

cmake_minimum_required(VERSION 3.8)
project(my_exe)
set(CMAKE_CXX_STANDARD 14) # Try 11 if your compiler does not support C++14
add_executable(my_exe hello.cpp)

然后您需要调用 CMake(在终端中,转到包含 CMakeLists.txt 文件的文件夹)并稍后构建项目。

首先,您应该创建一个构建目录。这很方便,因为您不想将构建输出与项目文件混合。

mkdir build
cd build

然后,调用 CMake 并告诉它生成 Ninja 构建系统 (-GNinja),同时告诉它 CMakeLists.txt 文件所在的位置 (.. ),它应该在 build 文件夹的正下方:

cmake -GNinja ..

现在,您已准备好构建可执行文件:

ninja

完成。您现在应该在 build 文件夹中有一个可执行文件名称 my_exe