如何在 Qt 中为嵌入式设备设置 poppler 库?
How to set up poppler library in Qt for embedded device?
目标是在我的目标上显示 pdf => imx6 板 + 显示器。我的主人的 OS 是 Linux。
到目前为止,我有一个用 Qt 5 编写的程序。
它编译得很好,我可以在显示器上看到它。
为了显示一些 pdf,我想使用 poppler 库。
问题是我无法完成这项工作。妥妥的...
到目前为止我的步骤:
我按照 INSTALL 文件中的描述完成了 poppler 的基本安装。
mkdir build
cd build
cmake ..
make
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: error: file not recognized: File format not recognized
:-1: error: collect2: error: ld returned 1 exit status
现在我只有两个想法。第一个是交叉编译 poppler 源代码。 (我用工具链文件试过这个但失败了:'D)
第二个想法是将库与我的项目一起放入 Qt 并在那里编译它——也许这可行。我只是不知道怎么办。帮助。
除了 poppler,我还对其他东西持开放态度 - 我只想显示 pdf。
这里的问题是您正在以某种方式为 ARM 编译 Qt 项目,使用相应的工具链和 sysroot 和 ABI,并且您不能 link 为您编译的库,比如说,x86_64,因为它们只是二进制不兼容。
在非常幸运的情况下,您设法为交叉编译配置了创建者,只需为 poppler 库创建一个创建者项目,使用 cmake,并使用您用于 imx6 应用程序的相同工具包配置该项目。一旦你为 ARM 构建了它,你就可以在你的应用程序中正确 link 它,在 .pro 文件中提供 LIBS
的完整路径。
如果您使用的是 Yocto,只需为 poppler 制作一份食谱即可。如果你不是,也许你应该。
目标是在我的目标上显示 pdf => imx6 板 + 显示器。我的主人的 OS 是 Linux。 到目前为止,我有一个用 Qt 5 编写的程序。 它编译得很好,我可以在显示器上看到它。
为了显示一些 pdf,我想使用 poppler 库。 问题是我无法完成这项工作。妥妥的...
到目前为止我的步骤: 我按照 INSTALL 文件中的描述完成了 poppler 的基本安装。
mkdir build
cd build
cmake ..
make
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: error: file not recognized: File format not recognized
:-1: error: collect2: error: ld returned 1 exit status
现在我只有两个想法。第一个是交叉编译 poppler 源代码。 (我用工具链文件试过这个但失败了:'D) 第二个想法是将库与我的项目一起放入 Qt 并在那里编译它——也许这可行。我只是不知道怎么办。帮助。
除了 poppler,我还对其他东西持开放态度 - 我只想显示 pdf。
这里的问题是您正在以某种方式为 ARM 编译 Qt 项目,使用相应的工具链和 sysroot 和 ABI,并且您不能 link 为您编译的库,比如说,x86_64,因为它们只是二进制不兼容。
在非常幸运的情况下,您设法为交叉编译配置了创建者,只需为 poppler 库创建一个创建者项目,使用 cmake,并使用您用于 imx6 应用程序的相同工具包配置该项目。一旦你为 ARM 构建了它,你就可以在你的应用程序中正确 link 它,在 .pro 文件中提供 LIBS
的完整路径。
如果您使用的是 Yocto,只需为 poppler 制作一份食谱即可。如果你不是,也许你应该。