如何获得CMake';在Visual Studio中添加外部项目(git子模块问题)?
我正试图在Visual Studio 2017中直接在Windows 10上构建。 穿山甲的CMake包含以下命令:如何获得CMake';在Visual Studio中添加外部项目(git子模块问题)?,git,cmake,visual-studio-2017,git-submodules,Git,Cmake,Visual Studio 2017,Git Submodules,我正试图在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 INSTAL
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
):
换句话说,命令git子模块update--recursive--init
会导致错误。但是,当通过GitBash手动运行时,它不会导致错误
一些(也在相关的提交和中)显示这可能与git路径或git子模块脚本(C:\Program Files\git\mingw64\libexec\git core
for me)应添加到系统路径的路径有关。将这些预先添加到系统路径(对于系统或用户)不会影响结果(重新启动系统,而只是为了确保注册了新路径)。我还尽我所能确保脚本文件本身对任何用户都有运行权限(是否有警告?)
从cmd复制/粘贴:
C:\WINDOWS\system32>echo %PATH%
C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\mingw64\libexec\git-core;C\Program Files\...
是否有人知道如何让这项工作或有任何建议
当前解决方法:在CMake中设置BUILD\u EXTERN\u GLEW=OFF
,并根据CMake手动签出和构建GLEW Pangolin所需的版本
版本:
- git 2.23.0.windows.1
- VisualStudio社区2017 15.9.16
- CMake 3.15.3
- 穿山甲25159034e62011b3527228e476cec51f08e87602(撰写本文时最新提交给大师)
通过从普通命令提示符而不是git bash运行cmake,我能够解决这个问题。git bash似乎生成了非ascii路径,这会导致某些git命令失败。(请参阅-希望在git 2.24中得到修复)感谢您提供的提示,希望它能帮助某些人。不幸的是,在我的例子中,当我尝试在VS2017中构建外部项目时,从git bash、命令提示符或git gui运行CMake会产生相同的错误。是的。这这正是对我有用的。FSCK视觉系统。
C:\WINDOWS\system32>echo %PATH%
C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\mingw64\libexec\git-core;C\Program Files\...