当我运行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
任何人都知道可以对此错误做些什么?
在我运行CMakeCache.txt
的文件夹中的文件cmake
中,有一个名为GIT_EXECUTABLE:FILEPATH
的变量,由于某种原因指向了错误的路径(我安装了Git但不在该文件夹中)。所以我删除了CMakeCache.txt
(根据Tsyvarev的建议)并重新运行cmake
,之后我没有遇到同样的问题。
我不明白的是为什么我第一次运行GIT_EXECUTABLE:FILEPATH
而不是第二次cmake
指定了错误的路径。这条错误路径来自哪里?为什么我只遇到一次这个问题,而不是两次我都跑cmake
?
使用git的路径指定GIT_EXECUTABLE。
看起来cmake默认从IDE中获取git。 Visual Studio和Xcode也提供了git二进制文件,它最好由cmake提供,可能是版本不匹配错误的原因。