gpt4 book ai didi

c - 当我从 libgit2 中包含 git2.h 时,我可以访问数据结构,但不能访问函数

转载 作者:太空宇宙 更新时间:2023-11-04 01:34:31 26 4
gpt4 key购买 nike

这是我基于 Ben Straub 的(链接博客)的一些代码:

static int do_clone(const char *url, const char *path)
{
git_repository *repo = NULL;
int ret = git_clone(&repo, url, path, NULL);
git_repository_free(repo);
return ret;
}

这是我的代码:

#include <git2.h>

int main(void) {
git_repository *out = NULL;

git_clone(&out, "https://github.com/lehitoskin/racketball", "/home/maxwell", NULL);

return 0;
}

我对 C 非常缺乏经验,所以对于遇到这些初级问题我深表歉意。无论如何,这是我的编译器给我的错误:

maxwell@max-pc ~ $ gcc -I libgit2/include gitfun.c
/tmp/ccB64nPh.o: In function `main':
gitfun.c:(.text+0x31): undefined reference to `git_clone'
collect2: error: ld returned 1 exit status

为什么我不能这样调用 git_clone?

最佳答案

您似乎没有链接到图书馆。如果 libgit2 是库名称,则添加 -lgit2。

gcc -I libgit2/include gitfun.c -L<path to lib> -l<libname minus the "lib" part>

IOW,你编译得很好,但是当链接器去寻找 git_clone 时,它找不到它,因为你没有指定它所在的库。

关于c - 当我从 libgit2 中包含 git2.h 时,我可以访问数据结构,但不能访问函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16948828/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com