我从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/

10-12 05:18