正如我在this question看到的那样,libgit2
现在支持使用ssh存储库网址。
但是如何强迫它发挥作用?正如我从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工作之后的宏GIT_SSH
仍未定义,并且所有SSH内容都不可用。
例如,代码git_cred_ssh_keyfile_passphrase kf_pass;
无法编译。
我收到这样的错误:
'git_cred_ssh_keyfile_passphrase' was not declared in this scope
,
即GIT_SSH
未定义,因为此结构在#ifdef GIT_SSH ... #endif
块中声明。
也许我是以错误的方式做某事?