Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt5:Poppler链接器错误_C++_Windows_Qt_Linker Errors_Poppler - Fatal编程技术网

C++ Qt5:Poppler链接器错误

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的添加是正确的。

我从下载了预构建的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文件进行测试时

我收到一个链接器错误:


有人能帮我吗?

我错过了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 */