0

正如我从这个问题中看到的,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块中声明的。

也许我做错了什么?

4

0 回答 0