我从this page下载了预构建的win32 poppler二进制文件。在.pro文件中添加了include文件夹和lib文件夹的路径:
INCLUDEPATH += "C:\\test_folder\\poppler-0.24.5-win32\\include\\poppler-qt5"
LIBS += -L/"C:\\test_folder\\poppler-0.24.5-win32\\lib"
在main.cpp中,我没有错误地包含“ poppler-qt5.h”,因此我认为poppler已正确添加。但是,通过打开pdf文件as described here进行测试时,
QString path = "C:\\Windows\\System32\\spool\\PRINTERS\\test_file.pdf";
Poppler::Document *doc = Poppler::Document::load(path);
我收到链接器错误:
有人可以帮我吗?
最佳答案
我在您的LIBS行中缺少-l
LIBS += -L/"C:\\test_folder\\poppler-0.24.5-win32\\lib" -lpoppler-qt5
最终重命名该库,因为.dll.a不是Windows中的标准扩展名。
编辑:在不重命名库的情况下工作:
.pro文件:
INCLUDEPATH += $$quote(D:\Users\username\Downloads\poppler-0.24.5-win32\poppler-0.24.5-win32\include\poppler-qt5)
LIBS += -L$$quote(D:\Users\username\Downloads\poppler-0.24.5-win32\poppler-0.24.5-win32\lib) -lpoppler-qt5
.cpp文件:
#include <QApplication>
#include <mycpp.h>
#include <poppler-qt5.h>
/* Some Code here */
QString path = "D:\\SomePDF.pdf";
Poppler::Document *doc = Poppler::Document::load(path);
/* More Code here */
关于c++ - Qt5:Poppler奇怪的链接器错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22536032/