我是CMake的新手,正在尝试理解如何配置CMake以使用Ninja作为构建工具。我遇到的具体问题是,我正在尝试使用install.py安装YouCompleteMe插件到vim中。我得到了以下错误:
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
时,我的意思是在机器级别上像环境变量一样设置,而不是修改实际要构建的项目中的构建定义文件。
export CMAKE_GENERATOR=Ninja
并验证它已经被设置。但是我仍然得到相同的错误。当我检查cmake --help
时,我发现默认生成器仍然是 "Unix Makefiles"。 - kovacCMAKE_GENERATOR
将覆盖默认值。在重新运行CMake之前,应删除CMake缓存(CMakeCache.txt
),以避免意外使用旧配置。 - Kevin