【问题标题】:How to compile "Hello World" in C++ with Ninja?如何使用 Ninja 在 C++ 中编译“Hello World”?
【发布时间】:2020-03-18 06:26:56
【问题描述】:

我是 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

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

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

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

不知道rules.ninja的创建方法和配置方法,不知道会不会漏掉更多的东西。

【问题讨论】:

  • 您的CMakeLists.txt 文件是什么样的?你是如何调用cmake的?
  • 我没有 CMakeLists.txt 或 cmake 文件。我如何创建它们?我一直使用 makefile 来生成我的 c++ 项目。

标签: c++ makefile cmake compilation ninja


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2012-01-20
    • 2016-12-07
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    • 2012-08-18
    • 2023-02-11
    • 1970-01-01
    相关资源
    最近更新 更多