libgit2: сбой git_clone () с ошибкой «не удалось создать объект ssl» - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь клонировать git-репозиторий, используя функцию git_clone() в libgit2, однако, когда я вызываю функцию, она возвращает -1 и использует giterr_last() (я получаю "неопределенную ссылку", если я использую git_error_latest(),не знаю почему) я получаю ошибку "не удалось создать объект ssl".

Я посмотрел исходный код соответствующего файла, здесь , и кажется, что он не работает в строке 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 голосов
/ 15 апреля 2019

Я понял, вы должны вызвать git_libgit2_init() перед использованием любых других функций в libgit2. Добавление этого в начало моей программы решило проблему.

...