libgit2:git_clone()失败,并显示“无法创建ssl对象”错误

时间:2019-04-12 12:00:52

标签: c++ libgit2

我正在尝试使用libgit2的git_clone()函数克隆git存储库,但是,当我调用该函数返回-1并使用giterr_last()时(如果我使用,则会得到“未定义的引用” git_error_latest(),不知道为什么)我收到错误“无法创建ssl对象”。

我已经查看了相关文件here的源代码,似乎它在第711行SSL_new(git__ssl_ctx)上失败了。

这是我的代码:

#include <string>
#include <git2/clone.h>
#include <git2/errors.h>
#include <git2/common.h>
#include <iostream>

int main() {
    git_repository* pGitRepository = nullptr;
    std::string url = "https://github.com/Newbie13XD/nashmap.git";
    std::string path = "/home/neboula/CLionProjects/gut/foo";
    const git_clone_options* options = nullptr;

    if (git_clone(&pGitRepository, url.c_str(), path.c_str(), options) != 0) {
        const git_error* error = giterr_last();

        std::cout << error->message;
    }

    return 0;
}

我正在使用g ++(版本:Red Hat 8.3.1-2)和libgit2版本0.27.8进行编译。

1 个答案:

答案 0 :(得分:0)

我知道了,您必须在使用libgit2中的任何其他函数之前调用git_libgit2_init()。将其添加到程序的开头即可解决此问题。