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';在Visual Studio中添加外部项目(git子模块问题)?_Git_Cmake_Visual Studio 2017_Git Submodules - Fatal编程技术网

如何获得CMake';在Visual Studio中添加外部项目(git子模块问题)?

如何获得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

我正试图在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
):

换句话说,命令
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(撰写本文时最新提交给大师)
[编辑(其他信息)]

  • 从gitbash命令运行cmake时,我得到了相同的结果 提示,或通过CMake gui
  • 我在另一台机器上用旧的 Git和CMake的两个版本

  • 通过从普通命令提示符而不是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\...