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

时间:2019-11-22 08:00:32

标签: c++ makefile cmake compilation ninja

我是忍者新手。仍然不知道如何使用它。

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

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

我正在使用Linux Ubuntu。

我已经使用以下命令安装了CMake:apt install cmake

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

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

我尝试运行ninja,但遇到关于rules.ninja的错误:

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

我不知道如何创建rules.ninja以及如何配置它,也不知道我是否还会错过其他事情。

1 个答案:

答案 0 :(得分:3)

假设这里根本没有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

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