libgit2를 사용하여 분기의 모든 커밋을 처리하려면 어떻게해야합니까?libgit2를 사용하여 분기의 모든 커밋을 나열하십시오.
이미 다음 코드 비트가 있지만 컴파일되지 않습니다.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <git2.h>
int main(int argc, char *argv[]){
git_repository *repo;
git_repository_open(&repo, ".");
git_odb *obj_db;
obj_db = git_repository_database(repo);
git_object commit;
git_revparse_single(&commit, repo, "HEAD");
git_repository_free(repo);
return 0;
}
GCC 보고서 다음 -lgit2
플래그로 컴파일
log.c: In function ‘main’:
log.c:11:9: warning: assignment makes pointer from integer without a cast [enabled by default]
log.c:13:13: error: storage size of ‘commit’ isn’t known
I. 루트 커밋을 시작으로 모든 커밋을 빠르게 처리 할 수 있습니까?
업데이트 새로운 코드는 다음과 같습니다 :
이#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <git2.h>
int main(int argc, char *argv[]){
git_repository *repo;
git_repository_open(&repo, ".");
git_odb *obj_db;
obj_db = git_repository_database(repo);
git_object *commit;
git_revparse_single(&commit, repo, "HEAD");
git_repository_free(repo);
return 0;
}
나는 다음과 같은 오류 메시지를 얻을 :
이log.c:11: undefined reference to `git_repository_database'
log.c:14: undefined reference to `git_revparse_single'
것이 확인 최신 라이브러리를 사용하고 해당 버전의 설명서를보고 있습니다. 'git_repository_database'는 존재하지 않습니다. 아마도 당신은'git_repository_odb'을 원할 것입니다. 'git_revparse_single'는 버전 0.18에서 소개되었습니다. 이것은 여러분의 시스템에 고대 라이브러리가 설치되어 있음을 암시합니다. –