Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.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
C 如何在libgit2中使用SSH支持?_C_Git_Cmake_Libgit2 - Fatal编程技术网

C 如何在libgit2中使用SSH支持?

C 如何在libgit2中使用SSH支持?,c,git,cmake,libgit2,C,Git,Cmake,Libgit2,正如我从中看到的,libgit2现在支持使用ssh存储库URL 但如何强迫它工作呢?正如我从CMakeLists文件中了解到的,如果检测到libssh2库,SSH支持将自动启用 IF(NOT LIBSSH2_LIBRARY) FIND_PACKAGE(LIBSSH2 QUIET) ENDIF() IF (LIBSSH2_FOUND) MESSAGE("libssh2 was detected!") ADD_DEFINITIONS(-DGIT_SSH) INCLUD

正如我从中看到的,
libgit2
现在支持使用ssh存储库URL

但如何强迫它工作呢?正如我从CMakeLists文件中了解到的,如果检测到
libssh2
库,SSH支持将自动启用

IF(NOT LIBSSH2_LIBRARY)
    FIND_PACKAGE(LIBSSH2 QUIET)
ENDIF()
IF (LIBSSH2_FOUND)
    MESSAGE("libssh2 was detected!")
    ADD_DEFINITIONS(-DGIT_SSH)
    INCLUDE_DIRECTORIES(${LIBSSH2_INCLUDE_DIR})
    SET(SSH_LIBRARIES ${LIBSSH2_LIBRARIES})
ENDIF()
不得不说,我看到了“libssh2被检测到”消息。 但是,cmake work之后的宏
GIT_SSH
仍然没有定义,所有SSH内容都不可用。 例如,code
git\u cred\u ssh\u keyfile\u密码短语kf\u pass不编译。
我得到这样的错误:
“git\u cred\u ssh\u keyfile\u passphrase”未在此范围内声明,
i、 e.
GIT_SSH
未定义,因为此结构在
\ifdef GIT_SSH中声明#endif


也许我做错了什么?

你到底犯了什么错误?您是如何确定未定义
GIT\u SSH
的?@CarlosMartínNieto错误是
“GIT\u cred\u SSH\u keyfile\u passphrase”未在此范围内声明的。此结构在libgit2的
#ifdef GIT_SSH
块中声明。所以,我确信这个宏是未定义的。但这不应该!确保清理生成目录。我只能从选项进入开发分支之前的脏构建目录中复制任何问题。@CarlosMartínNieto我只是将
libgit2
make系统从
cmake
转换为Qt的
qmake
,因为这个库正在大型Qt/qmake项目中使用。所以我的问题变成了“不赞成”,呵呵。但谢谢你的提示。