如何使用 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
。
我是 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
。