请保护鸽子 发表于 2021-1-21 13:16:36

because it could not find or load the Qt platform plugin "xcb".

本帖最后由 请保护鸽子 于 2021-1-21 13:21 编辑

大佬们好,我最近在做QT的移植,有个问题在网上怎么搜索都找不到答案。我是做zynq-7000移植linaroUbuntu桌面系统的时候,老师要求用QT做几个程序在桌面系统上跑。我按照网上的方法,下载QTe然后用交叉编译器arm-xilinx-linux-gnueabi-gcc编译,./configure用的是默认配置。一开始编译的时候我还没注意,结果在板子上跑程序的时候,就报错了。
我写的是一个helloworld,就把label直接拉到ui里面输入文本helloworld,主机Linux上还是正常显示的,然后用生成的qmake编译后移植到板子上,先是少了一堆动态库,像ld-linux.so.3,libstdc++.so.6之类的,我就从主机的交叉编译工具的安装文件夹下面找到了一样文件拷进去了。添加完了后,就报主题上错了:This application failed to start because it could not find or load the Qt platform plugin "xcb".我参考网上export QT_DEBUG_PLUGIN=1,然后打印信息提醒我找不到platforms文件夹。我就去编译QTe生成的文件夹里面找到了platforms,拷贝到与程序同目录的位置。但是还是报一样的错,只是linuxfb,minimal,offscreen能找到,xcb找不到。
我又返回到编译的时候,找到了问题的所在:我./configure的时候,把-xcb加上了,然后就出现了一堆error,

而且在最下面有打印的信息:
The test for linking against libxcb failed!
Use of pkg-config is not enabled, maybe you want to pass -force-pkg-config?
You might need to install dependency packages for libxcb.
See src/plugins/platforms/xcb/README.
打开路径里面的README后,发现了要让我装很多依赖包,我就按照提示全装上了。有一个libxcb-sync0找不到,我就去网上搜,发现前人说这个无解,让我用qt-xcb,但是我用qt-xcb也是一样的报错信息。现在我就卡在这里,不知道自己是哪里做错了,希望有人能帮帮我!

请保护鸽子 发表于 2021-1-21 13:20:43

本帖最后由 请保护鸽子 于 2021-1-21 15:39 编辑

The test for linking against libxcb failed!
Use of pkg-config is not enabled, maybe you want to pass -force-pkg-config?
You might need to install dependency packages for libxcb.
See src/plugins/platforms/xcb/README.


baizy77 发表于 2021-1-22 13:39:27

提示找不到platforms文件夹那一步,把platforms文件夹拷贝到bin同级别目录。也就是可执行程序的上级目录,跟bin并列,试试看怎么样。

AkEcbz 发表于 2021-1-22 16:31:09

我是ZYNQ7035的板子,遇到了同样的问题。查找发现plugin/platforms/下没有libqxcb.so这个文件,所以提示到不到xcb。没办法,重新编译咯,configure加上-qpa xcb -xcb-xlib -xcb这几个xcb选项,需要xcb的库参考官方说明文档:https://doc.qt.io/qt-5/linux-requirements.html
或者你用./hello -platform linuxfb,指定使用linuxfb。
祝你一切顺利!

AkEcbz 发表于 2021-1-22 16:36:50

看plugin/platforms有没有libqxcb.so这个文件,没有的话重新编译,configure加上-xcb -xcb-lib -qpa xcb这几个选项。

AkEcbz 发表于 2021-1-22 17:09:52

AkEcbz 发表于 2021-1-22 16:36
看plugin/platforms有没有libqxcb.so这个文件,没有的话重新编译,configure加上-xcb -xcb-lib -qpa xcb这 ...

xcb需要安装的库,参考这个文档第一节:https://doc.qt.io/qt-5/linux-requirements.html
页: [1]
查看完整版本: because it could not find or load the Qt platform plugin "xcb".