正如我从这个问题中看到的,libgit2
现在支持使用 ssh 存储库 url。
但是如何强制它工作呢?libssh2
正如我从 CMakeLists 文件中了解到的那样,如果检测到库,将自动启用 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
块中声明的。
也许我做错了什么?