makefile - 如何将 CMAKE_MAKE_PROGRAM 设置为 Ninja?

标签 makefile cmake ninja

我是 CMake 的新手,正在尝试了解如何配置 CMake 以使用 Ninja 作为构建工具。我遇到的具体问题是我正在尝试使用他们的 install.py 为 vim 安装 YouCompleteMe 插件。我收到以下错误:

Searching Python 3.8 libraries...
Found Python library: /usr/lib64/libpython3.8.so
Found Python headers folder: /usr/include/python3.8
CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
See also "/tmp/ycm_build__dy3xdvd/CMakeFiles/CMakeOutput.log".
ERROR: the build failed.

在互联网上查找了类似的错误后,我意识到我可以通过安装 Make 来解决这个问题。但是,我想知道我是否真的可以使用 Ninja 而不是我已经安装并在路径中的 Make。有没有办法可以将 CMAKE_MAKE_PROGRAM 设置为我的 Ninja 安装,以便我可以克服这个错误,或者我是否必须使用 Make 因为 CMAKE_MAKE_PROGRAM 只能从项目中设置?

编辑:

当我说设置 CMAKE_MAKE_PROGRAM 时,我的意思是像环境变量一样在机器级别。不是通过修改我尝试构建的实际项目中的构建定义文件。

最佳答案

您应该将环境变量 CMAKE_GENERATOR 设置为 Ninja 。 CMake 将读取此变量以选择生成器,而不是选择您看到的默认“Unix Makefiles”。当您不直接调用 cmake 并且无法传递 -G 命令行选项来设置生成器时,这很有用。
CMAKE_GENERATOR 变量最终会为您设置 CMAKE_MAKE_PROGRAM 变量,因此您不必手动修改它。

关于makefile - 如何将 CMAKE_MAKE_PROGRAM 设置为 Ninja?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60790624/

相关文章:

makefile - 在 ocamlbuild 中使用外部库

c++ - CMake 找到了 Boost 但 Make 找不到包含文件

variables - Makefile 字符串变量

c++ - 如何让 cmake 的 PKG_CHECK_MODULES 在 Windows 中找到我的 cairo 库

linux - CMake递归地将目录的所有子目录内的所有源文件添加到可执行文件?

创建一个带有内置静态库的exe文件

c++ - 找不到自定义编译 'CMake'

c++ - 使用 Ninja 使用 CMake 构建的 Unicode MFC 应用程序中 Unresolved WinMain 错误

cmake - CMake 用于检测 Ninja 的 Visual C++ 编译器工具的环境变量

android - 尝试编译 AOSP 7.1.1 第 6 版时缺少 'libaudiopolicyservice_intermediates"?