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内容都不可用。
例如,codegit\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项目中使用。所以我的问题变成了“不赞成”,呵呵。但谢谢你的提示。