2

我不希望任何人能够解决我的具体问题,但我希望答案可能会引导我走向正确的方向。

我有一个 Qt5.2 应用程序已编译并在我的 TI AM335x 评估模块上运行。它使用-platform elgfs标志运行。

我最近收到了新硬件,该硬件仍在使用相同版本的 TI AM335x 处理器 (3352),但它位于完全不同的板上,具有不同的显示。内核是由一些外部第三方从 TI 修改的,根文件系统和我的 Qt5.2 应用程序与 TI AM335x 上的完全相同。

当我在这个新硬件上启动我的应用程序时,它会报告:

打开显示 0x1

无法初始化 egl 显示

EGL 错误
中止

所以我的问题是:

  • 是什么导致 Qt 无法初始化 egl 显示?

我的理解是“EGL”代表“嵌入式系统图形库”,我认为这意味着在某个地方需要一些 EGL.lib,但是在内核/驱动程序级别需要什么显示与 EGL 兼容?

4

1 回答 1

1

查找插件是否存在:

ls $ROOTFS/usr/lib/qt5/plugins/platforms/libqeglfs.so

在其上运行 ldd(来自您的工具链,而不是系统 ldd):

build-arm-poky-linux-gnueabi/elf/ldd libqeglfs.so

    libz.so.1 => not found
    libudev.so.0 => not found
    libQt5Gui.so.5 => not found
    libQt5Core.so.5 => not found
    libGLESv2.so.2 => not found
    libEGL.so.1 => not found
    libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xf66e6000)
    libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0xf662f000)
    libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xf65bb000)
    libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xf6592000)
    libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xf64a3000)
    /lib/ld-linux-armhf.so.3 (0xf6fd7000)

确保所有库都存在(同样在 ROOTFS 而非主机系统上)。

如果没有,请在您的 ROOTFS 上安装适当的库。

于 2015-04-28T00:46:26.103 回答