2013-06-05 39 views
1

以下是本斯特勞布舉(鏈接博客)的一些代碼,我在此基礎:當我包括libgit2 git2.h,我可以訪問數據結構,而不是功能

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非常缺乏經驗,所以我很抱歉有這樣的基本問題。總之,這裏是我的錯誤編譯器給我:

[email protected] ~ $ 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這樣?

回答

4

它看起來像你沒有鏈接到圖書館。如果libgit2是lib名稱,則添加-lgit2。

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

督察,編譯正常,但當鏈接器去尋找git_clone因爲你沒有指定,這是在庫中無法找到它。

+0

你是我的英雄。我保證我不想吮吸C.非常感謝你! –

相關問題