我从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);
我收到链接器错误:
有人可以帮助我吗?
答案 0 :(得分:0)
我在你的LIBS专栏中缺少-l
LIBS += -L/"C:\\test_folder\\poppler-0.24.5-win32\\lib" -lpoppler-qt5
最终重命名lib,因为.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 */
答案 1 :(得分:0)
我遇到了同样的问题,我用这种方法解决了这个问题:
如果在文件夹\ poppler-0.24.5-win32 \ bin \中找到Qt生成可执行文件的文件夹,则复制dll文件。然后下载zlib1.dll并将此dll插入到Qt生成可执行文件的文件夹中。现在试试。 这适合我。我在Windows XP SP3中用qt 5.3编译。