CMake无法检测Git版本
当我运行cmake(以便)时,会收到错误消息CMake无法检测Git版本,git,cmake,Git,Cmake,当我运行cmake(以便)时,会收到错误消息 CMake Error at C:/Program Files/CMake/share/cmake-3.8/Modules/ExternalProject.cmake:1811 (message): error: git version 1.6.5 or later required for 'git submodule update --recursive': GIT_VERSION_STRING='' 在ExternalProject.
CMake Error at C:/Program Files/CMake/share/cmake-3.8/Modules/ExternalProject.cmake:1811 (message):
error: git version 1.6.5 or later required for 'git submodule update
--recursive': GIT_VERSION_STRING=''
在ExternalProject.cmake
中的第1810-1812行,我有以下几行:
if(GIT_VERSION_STRING VERSION_LESS 1.6.5)
message(FATAL_ERROR "error: git version 1.6.5 or later required for 'git submodule update --recursive': GIT_VERSION_STRING='${GIT_VERSION_STRING}'")
endif()
但是我看不到在哪里分配了GIT\u VERSION\u STRING
。不管怎样,GIT\u VERSION\u STRING
似乎是未分配的,或者被分配了一个空字符串或类似的东西。这使得CMake无法检测到我的Git版本
我有Git和Git--version
git version 2.12.2.windows.2
有人知道如何处理这个错误吗?在我运行
cmake
的文件夹中的文件cmakache.txt
中,有一个名为GIT\u EXECUTABLE:FILEPATH
的变量,由于某种原因指向了错误的路径(我安装了GIT,但不在该文件夹中)。因此,我删除了CMakeCache.txt
(根据Tsyvarev的建议)并重新运行了cmake
,之后我没有遇到同样的问题
我不明白的是,为什么我第一次运行
cmake
时,GIT\u可执行文件:FILEPATH被分配了一个不正确的路径,但第二次没有。那条错误的道路是从哪里来的?为什么我只运行了一次而不是两次cmake
?指定GIT\u可执行文件和GIT的路径
看起来cmake默认从IDE中获取git。VisualStudio和Xcode也提供了git二进制文件,这是cmake的首选,可能是版本不匹配错误的原因 你能展示一下
C:/Program Files/CMake/share/CMake-3.8/Modules/ExternalProject中的内容吗,还有可能是您的cmake代码触发了此调用?确保找到了正确的git
:检查cmake缓存中的git\u可执行文件变量。@Tsyvarev:什么是cmake缓存,我如何检查其中的变量?@Tsyvarev:在生成目录中有一个CMakeCache.txt
文件,其中,GIT\u可执行文件:FILEPATH
设置为不存在的路径。是否有方法全局重置此变量(或者可能重置整个缓存)?要重置此变量,请从cmakcache.txt
中删除有关此变量的记录。对于重置整个缓存,请删除整个文件。