我一直在努力Qt中的错误:
mainwindow.obj:-1: error: LNK2019: unresolved external symbol _git_repository_open referenced in function "public: __thiscall MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QAE@PAVQWidget@@@Z)
显然这是一个链接错误,但我一直无法弄清楚是什么原因造成的。这些都是在Windows上编译的,而我的目标库是libgit2。
我使用MVSC2010(我也用于Qt构建)编译了libgit2,然后将外部库添加到了Qt项目中。可以毫无问题地确认包含文件,但是未正确链接库。由于libgit2是C库,因此我尝试将该库包括在extern块中(并且也没有exern块),但无济于事:
extern "C" {
#include <git2.h>
}
此外,lib文件中的函数是:
dumpbin /EXPORTS git2.lib
...
_git_repository_open@8
...
引发错误的相关行(由于它是在git header 中定义的,因此第一行可以单独运行,但是第二行在链接时失败):
git_repository *repo;
git_repository_open(&repo, "/opt/libgit2-test/.git");
相关的qt.pro文件行:
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/libgit2/lib/ -lgit2
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/libgit2/lib/ -lgit2d
else:unix: LIBS += -L$$PWD/libgit2/lib/ -lgit2
INCLUDEPATH += $$PWD/libgit2/include
DEPENDPATH += $$PWD/libgit2/include
最佳答案
看来您遇到了这个问题:
https://github.com/libgit2/libgit2/issues/741
您可以从这里尝试建议:
https://github.com/libgit2/libgit2/pull/749#issuecomment-6434565
关于c++ - Qt Creator:未解析的外部符号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14860814/