如何在Qt中为嵌入式设备设置poppler库?

时间:2017-12-21 08:57:28

标签: qt poppler imx6

目标是在我的目标上显示pdf => imx6板+显示器。我的主机操作系统是Linux。 到目前为止,我有一个用Qt 5编写的程序。 它编译得很好,我可以在显示屏上看到它。

要显示一些pdf,我想使用poppler库。 问题是我无法完成这项工作。正确地......

到目前为止我的步骤: 我做了poppler的基本安装,就像在INSTALL文件中描述的那样。

  

mkdir build

     

cd build

     

cmake ..

     

     

make install

然后添加

INCLUDEPATH += /home/user/poppler/include/poppler/qt5 LIBS += -L"/home/user/poppler/lib" -lpoppler-qt5

到我的.pro文件

#include <poppler-qt5.h>到我的.cpp文件。

运行时的结果是:

  

/home/user/poppler/lib/libpoppler-qt5.so:-1:错误:无法识别文件:无法识别文件格式

     

: - 1:错误:collect2:错误:ld返回1退出状态

现在我只有两个想法。第一个是交叉编译poppler源代码。 (我用工具链文件尝试了这个但是失败了:&#39; D) 第二个想法是将库与我的项目一起放入Qt并在那里编译 - 也许这可行。我只是不知道如何。帮助

我还打开其他东西然后poppler - 我只是想显示pdf&#39; s。

1 个答案:

答案 0 :(得分:0)

问题在这里,你是在某种程度上为ARM编译Qt项目,使用相应的工具链和sysroot以及ABI,你不能只链接到你编译的库,比如x86_64,因为它们只是二进制不兼容。

在非常幸运的情况下,您设法配置创建者进行交叉编译,只需使用cmake为poppler库创建一个创建者项目,并使用您用于imx6应用程序的相同工具包配置项目。一旦为ARM构建了它,就可以在应用程序中正确链接它,提供.pro文件中LIBS的完整路径。

如果你正在使用Yocto,只需为poppler制作食谱。如果你不是,也许你应该。