CMake未能检测到Git版本

时间:2017-05-10 13:54:46

标签: git cmake

当我运行cmake时(为了build TensorFlow on Windows),我收到错误消息

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_VERSION_STRING的分配位置。无论如何,似乎GIT_VERSION_STRING未分配或分配了空字符串或类似的东西。这使得CMake无法检测到我的Git版本。

我有Git,git --version给出了

git version 2.12.2.windows.2

任何人都知道可以对此错误做些什么?

2 个答案:

答案 0 :(得分:0)

在我运行CMakeCache.txt的文件夹中的文件cmake中,有一个名为GIT_EXECUTABLE:FILEPATH的变量,由于某种原因指向了错误的路径(我安装了Git但没有在那个文件夹中)。所以我删除了CMakeCache.txt(根据Tsyvarev的建议)并重新运行cmake,之后我没有遇到同样的问题。

我不明白为什么GIT_EXECUTABLE:FILEPATH第一次运行cmake而不是第二次cmake时分配了错误的路径。这条错误路径来自哪里?为什么我只遇到一次这个问题,而不是两次我都跑 <?php //Gender if($query->gender=='m') { $gender='Man'; }else if($query->gender=='g') { $gender='Gay'; }else if($query->gender=='l') { $gender='Less'; }else if($query->gender=='w') { $gender='Woman'; }else { $gender='No data'; } // End gender //Status if($query->status=='s') { $status='Singel'; }else if($query->status=='m') { $status='Married'; }else if($query->status=='d') { $status='Divorced'; }else { $status='No data'; } // End gender ?>

答案 1 :(得分:0)

指定GIT_EXECUTABLE以及git的路径。

默认情况下,cmake看起来需要从IDE中获取git。 Visual Studio和Xcode也提供git二进制文件,这是cmake首选的,可能是有关版本不匹配的错误的原因。