C++ Qt5:Poppler链接器错误
我从下载了预构建的win32 poppler二进制文件。在.pro文件中添加了include文件夹和lib文件夹的路径:C++ Qt5:Poppler链接器错误,c++,windows,qt,linker-errors,poppler,C++,Windows,Qt,Linker Errors,Poppler,我从下载了预构建的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的添加是正确的。
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文件进行测试时
我收到一个链接器错误:
有人能帮我吗?我错过了yout 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 */
#包括
#包括
#包括
/*这里有一些代码*/
QString path=“D:\\SomePDF.pdf”;
Poppler::Document*doc=Poppler::Document::load(路径);
/*这里有更多代码*/
我遇到了同样的问题,我用这种方法解决了它:
如果在文件夹\poppler-0.24.5-win32\bin\中找到dll文件,请将其复制到Qt生成可执行文件的文件夹中。然后下载zlib1.dll并将该dll插入Qt生成可执行文件的文件夹。现在试试。
这对我有用。我在Windows XP SP3中使用qt 5.3编译。您在QtCreator中使用的是MinGW还是Microsoft Visual C(MSVC)编译器?(提示:试试MinGW)谢谢您的回复。如果我添加-lpoppler-qt5,我会得到一个链接器错误:无法打开文件poppler-qt5.lib,这是可以理解的,因为它不在那里。。将libpoppler-qt5.dll.a更改为poppler-qt5.lib也不起作用。需要-lpoppler-qt5吗?是的,但是将其更改为libpoppler-qt5.dll(不确定这是否是一个dll,因为.dll在windows上是共享的,而.a在linux上是静态的)。它对我来说工作正常,无需重命名,我会将代码添加到帖子谢谢你的工作Sebastian。不幸的是,它仍然不起作用。我创建了一个新的项目和新的下载,仍然不起作用。我正在使用MSVC编译器,我将尝试看看是否可以让MinGW编译器按照@walkingTarget建议的方式工作。你使用什么编译器?删除了我用MSVC安装的Qt,并用MinGW安装了它。我现在没有收到任何链接错误,但是即使使用上面发布的简单示例代码,程序也会崩溃。
#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 */