我正在尝试构建Pangolin,以便在Visual Studio 2017中直接在Windows 10上构建。 穿山甲的CMake涉及以下命令:
ExternalProject_Add( __glew
PREFIX "${CMAKE_CURRENT_BINARY_DIR}/glew"
GIT_REPOSITORY https://github.com/Perlmint/glew-cmake.git
GIT_TAG 7574ab4d00b683e56adbfdec7da636529dfe65d8
INSTALL_DIR ${CMAKE_INSTALL_PREFIX}
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE}
-DCMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG}
-DCMAKE_C_FLAGS_MINSIZEREL=${CMAKE_C_FLAGS_MINSIZEREL}
-DCMAKE_C_FLAGS_RELWITHDEBINFO=${CMAKE_C_FLAGS_RELWITHDEBINFO}
)
运行此代码时,我收到以下错误:
fatal: 'submodule' appears to be a git command, but we were not
able to execute it. Maybe git-submodule is broken?
我的分析表明,这发生在执行以下生成的 CMake 代码(来自build-dir/external/glew/tmp/__glew-gitclone.cmake
(:
execute_process(
COMMAND "C:/Program Files/Git/mingw64/bin/git.exe" submodule update --recursive --init
WORKING_DIRECTORY "C:/Users/scrambledusername/Garage/Pangolin/build/external/glew/src/__glew"
RESULT_VARIABLE error_code
)
if(error_code)
message(FATAL_ERROR "Failed to update submodules in: 'C:/Users/scrambledusername/Garage/Pangolin/build/external/glew/src/__glew'")
endif()
换句话说,命令git submodule update --recursive --init
会导致错误。但是,通过 Git Bash 手动运行时不会导致错误。
一些研究(也在相关的提交和这里(表明这可能与 git 路径或带有 git 子模块脚本的路径(对我来说C:Program FilesGitmingw64libexecgit-core
(应该添加到系统路径有关。将这些前缀添加到系统路径(对于系统 OR 用户(不会影响结果(重新启动系统,VS 只是为了确保注册新路径(。我还尽我所能确保脚本文件本身具有任何用户的运行权限(对此有警告吗?
从cmd复制/粘贴:
C:WINDOWSsystem32>echo %PATH%
C:Program FilesGitmingw64bin;C:Program FilesGitmingw64libexecgit-core;CProgram Files...
有谁知道如何让它工作或有任何建议?
当前的解决方法:在 CMake 中设置BUILD_EXTERN_GLEW=OFF
,并根据 CMake 手动签出并构建 GLEW 穿山甲需求的版本。
版本:
- git 2.23.0.windows.1
- VisualStudio Community 2017 15.9.16
- CMake 3.15.3
- 穿山甲 25159034e62011b3527228e476cec51f08e87602(撰写本文时最新提交给大师(
[编辑(附加信息(]
- 从 Git Bash 运行 cmake 时我得到了相同的结果,命令 提示,或通过CMake-gui。
- 我在另一台较旧的机器上获得了完美的构建 Git 和 CMake 的版本。
我能够通过从普通命令提示符而不是 git bash 运行 cmake 来解决此问题。似乎 git bash 会产生非 ascii 路径,这会导致某些 git 命令失败。(请参阅 https://stackoverflow.com/a/58192041 - 希望在 git 2.24 中得到修复(