Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CMake无法检测Git版本_Git_Cmake - Fatal编程技术网

CMake无法检测Git版本

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(以便)时,会收到错误消息

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
中删除有关此变量的记录。对于重置整个缓存,请删除整个文件。