首页 > 其他分享 >RK3588 Qt 交叉编译之四:配置及编译报错记录

RK3588 Qt 交叉编译之四:配置及编译报错记录

时间:2023-04-23 15:23:49浏览次数:51  
标签:Qt failed QMAKE 编译 报错 usr && eglfs

运行时出现错误提示:

QIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed
QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open failed

原因是缺少 iconv 库,解决方案如下:./configure后添加编译-no-iconv


运行时出现错误提示:

Unable to figure out framebuffer device. Specify it manually.
linuxfb: Failed to initialize screen
no screens available, assuming 24-bit color

原因发现是 RK3588 没有 fb,所以不支持 LinuxFB 平台插件。


ERROR: Feature 'opengles2' was enabled, but the pre-condition 'config.win32 || (!config.watchos && !features.opengl-desktop && libs.opengl_es2)' failed.

ERROR: Feature 'egl' was enabled, but the pre-condition '(features.opengl || features.openvg) && (features.angle || libs.egl)' failed.

ERROR: Feature 'eglfs' was enabled, but the pre-condition '!config.android && !config.darwin && !config.win32 && features.egl' failed.

需要先配置 EGL 和 OPENGL ES2 的 include 和 lib 路径才能正常编译。需要修改 qmake.conf:

# tell configure where to find opengl_es2
QMAKE_INCDIR_OPENGL_ES2 = /home/***/work/target/usr/include
QMAKE_LIBDIR_OPENGL_ES2 = /usr/aarch64-linux-gnu
QMAKE_LIBS_OPENGL_ES2 = -lEGL -lGLESv2 -lmali

# tell configure where to find egl
QMAKE_INCDIR_EGL = /home/***/work/target/usr/include
QMAKE_LIBDIR_EGL = /usr/aarch64-linux-gnu
QMAKE_LIBS_EGL = -lEGL -lGLESv2 -lmali

gcc 编译程序错误: as: unrecognized option ‘--64‘

解决方案:gcc 编译程序错误: as: unrecognized option ‘--64‘


使用kms_mali插件,运行会报错,打开 export QT_DEBUG_PLUGINS=1,报错如下:

QFactoryLoader::QFactoryLoader() checking directory path "/opt/demo/egldeviceintegrations" ...
loaded library "/opt/qt5122_rk3588_eglfs_mali/plugins/egldeviceintegrations/libqeglfs-mali-integration.so"
Failed to open fb to detect screen resolution!
Could not get variable screen info
Unable to set double buffer mode! (Bad file descriptor)
arm_release_ver of this libmali is 'g6p0-01eac0', rk_so_ver is '5'.

提示 eglfs_mali 依赖 fb。


undefined symbol: gbm create device

拷贝了一个正常的libmali.so libmali.so.1到/usr/lib才解决:undefined symbol: gbm create device


> /usr/bin/ld.gold: fatal error: verifyspec.o: unsupported ELF machine number 183
> collect2: error: ld returned 1 exit status
> Makefile:68: recipe for target 'verifyspec' failed
> make: *** [verifyspec] Error 1
Note: Also available for Linux: linux-clang linux-icc

ERROR: Cannot compile a minimal program. The toolchain or QMakeSpec is broken.

只能换个 Ubuntu 虚拟机来交叉编译,可能是原主机的环境有问题,暂时没能彻底解决。


qt.qpa.egldeviceintegration: Failed to load EGL device integration "eglfs_kms"

解决:将 eglfs_kvm 改为 eglfs_none


标签:Qt,failed,QMAKE,编译,报错,usr,&&,eglfs
From: https://www.cnblogs.com/linuxAndMcu/p/17346633.html

相关文章

  • RK3588 Qt 交叉编译之三:编译 eglfs_kms 版本
    由于RK3588NVR方案的内核不支持Framebuffer显示,没有/dev/fb0,所以不支持LinuxFB平台插件。所以要编译一个eglfs_kms的版本。前面的安装交叉编译工具链、安装QtCreator等步骤这里都省略了,不清楚的可以看上一篇博客:RK3588Qt交叉编译之二:编译LinuxFB版本一、交叉......
  • KEIL5--Error: L6915E: Library reports error: __use_no_semihosting was requested
    __use_no_semihostingwasrequested:要求不使用半主机模式。 比较简单的一个解决方法就是点击“魔术棒”,在Target标签下有个UseMicroLIB,勾选UseMicroLIB,再编译就不会报错了。”Use MicroLIB”,这是KEIL自带的一个简易的库,使用Use MicroLIB微库不需要强调不使用半主机(nos......
  • Git clone 报错 Missing or invalid credentials
    https://juejin.cn/post/7062237873570840589git clone报错Missingorinvalidcredentials.Error:connectEACCES/run/user/1000/vscode-git-26b2d57ddf.sockatPipeConnectWrap.afterConnect[asoncomplete](node:net:1157:16){errno:-13,code:'EA......
  • Docker 启动异常 不显示报错信息
    错误的启动配置sudodockerrun--rm-d\-p80:80-p443:443nginx执行结果为返回容器id,但容器未启动,无报错信息sudodockerrun--rm-itd\-p80:80-p443:443nginxbash执行结果为容器启动并在后台挂起,但nginx未启动成功,无报错信息sudodockerrun......
  • 02-httprunner创建脚手架报错解决方法:httprunner: error: invalid choice: ‘startpro
      转载:https://blog.csdn.net/qq_33940095/article/details/128191841安装完httprunner版本4.1.3后进行创建脚手架是报错  经过百度发现是与python(3.7.6)版本不匹配.卸载httprunner重新安装低版本的httprunner卸载:pipuninstallHttpRunner  ......
  • uiautomator2+app ui自动化用例报错截图pytest_runtest_makereport
    pytest提供了pytest_runtest_makereport这个方法,可以捕获用例的执行情况。根据官方提供的示例,在conftest.py文件中添加如下代码就可以捕获每个用例的执行结果。那么pytest_runtest_makereport作用:对于给定的测试用例(item)和调用步骤(call),返回一个测试报告对象(_pytest.runne......
  • Openharmony的编译构建--基础篇
    一、编译构建简介​ Openharmony的编译构建流程在鸿蒙的开源版本中以V3.1为分界线,流程略有变化。但其中都是ninja与python通过配置文件json,调用不同的交叉工具链来对源码进行编译,然后生成镜像文件。本文首先以OpenharmonyV3.1版本为例讲解下其编译构建的过程,并以实例的方式对如何......
  • Openharmony的编译构建--进阶篇1
    上一篇中说明了OpenharmonyV3.1的编译构建流程,如何在标准系统即L2设备添加一个模块呢,在Openharmony上如何编译与运行HelloWorld此篇中有所提及,此篇对此进行详细的说明。一、标准系统添加一个模块在Openharmony中添加模块可以分以下三种情况,对原有的配置文件时行不同程度的修改......
  • Openharmony的编译构建--进阶篇2
    承接上一篇Openharmony的编译构建--进阶篇1中说明了在OpenharmonyV3.1的如何在标准系统即L2设备一个模块的两种情况,此篇对第三种情况进行说明。四、新建子系统并在该子系统的部件下添加模块1.在模块目录下配置BUILD.gn,根据类型选择对应的模板2.新建包含该模块所属部件的bundle......
  • windows安装opensssh报错: no such file /home/.../.ssh 解决方案
    报错详细信息addknowhosts...nosuchfileordirectory:/home/\u82\u22/.ssh原因分析这是因为openssh不是直接读取的HOME环境变量,而是使用/home/{USERNAME}的形式去找用户根目录。但msys2没有创建该目录,因为msys2将HOME目录定义为/c/Users/{name}/。具体问题分析:Cr......