【问题标题】:How to set up poppler library in Qt for embedded device?如何在 Qt 中为嵌入式设备设置 poppler 库?
【发布时间】:2018-06-03 22:01:28
【问题描述】:

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

为了显示一些 pdf,我想使用 poppler 库。 问题是我无法完成这项工作。妥妥的……

到目前为止我的步骤: 我按照 INSTALL 文件中的描述完成了 poppler 的基本安装。

mkdir 构建

cd 构建

cmake ..

制作

进行安装

然后添加

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: error: collect2: error: ld 返回 1 退出状态

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

除了 poppler 之外,我还对其他内容持开放态度 - 我只想显示 pdf。

【问题讨论】:

    标签: qt poppler imx6


    【解决方案1】:

    这里的问题是,您以某种方式为 ARM 编译 Qt 项目,使用相应的工具链和 sysroot 和 ABI,并且您不能只链接到您为 x86_64 编译的库,因为它们只是二进制不兼容.

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

    如果您使用的是 Yocto,则只需为 poppler 制作一个食谱。如果你不是,也许你应该这样做。

    【讨论】:

    • 我正在使用 Yocto。但我是新手,我不知道食谱是什么。 ..但我想学习。
    • 尝试按照我提供的链接。如果你设法交叉编译了 qt,那么你现在几乎是专家了 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多