我试图让Ninja与FreeBSD 10.3上的CMake合作:
cmake -GNinja ..
-- Configuring done
CMake Error:
The detected version of Ninja () is less than the version of Ninja required
by CMake (1.3).
-- Build files have been written to: /home/me/pj/_build
我在~/bin/ninja
(我$PATH
)中放置了本地编译(来自Git标签v1.8.2)Ninja。
$ cmake -version
cmake version 3.4.1
$ ninja --version
1.8.2
我还尝试添加-DCMAKE_MAKE_PROGRAM=ninja
和-DCMAKE_MAKE_PROGRAM=~/bin/ninja
而没有效果。
我还试图看看Ninja是否真的被调用(通过编写一个新文件的脚本),看起来它从未被调用过。
有没有办法查看用于检查Ninja版本的命令?
答案 0 :(得分:1)
通过检查生成的CMakeCache.txt文件,您应该能够判断CMake选择了哪个Ninja版本。
在CMakeCache.txt
中你应该有类似的东西:
// Path to a program.
CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/ninja
可以告诉默认选择哪个Ninja版本,是否尊重-DCMAKE_MAKE_PROGRAM
或者忽略了某些原因。
此外,值得研究生成的CMakeOutput.log
和CMakeError.log
文件。
我还建议将ninja
添加到你的PATH中,希望CMake从那里选择它。
答案 1 :(得分:0)
在遇到相同的错误消息时,我遇到了这个问题。我忘记做的是在使用cmake
或-GNinja
选项运行-DCMAKE_GENERATOR=Ninja
之前删除CMakeCache.txt文件。因此cmake
正在提取缓存的变量。