发布时间:2025-08-18 来源:瑞迅科技 浏览量:227
在工业控制、智能零售、AI机器人等领域,高性能、稳定可靠且具备丰富人机交互能力的嵌入式设备需求激增。
瑞迅科技推出的基于瑞芯微旗舰级芯片RK3568的系列主板,凭借其强劲的四核A55 CPU、高效Mali G52 GPU、丰富接口(多路USB、以太网、CAN、串口等)及工业级可靠性,成为复杂QT应用开发的优秀硬件平台。

QMAKE_INCDIR_OPENGL[_ES2]配置

EGLFS Mali 无法被选中,提示错误
确保1问题解决的情况下,如果出现EGLFS Mali提示是no的情况,可以查看config.log,看log中是否有提示fbdev_window.h找不到。如果是可以在“/usr/include/EGL”下手动
创建fbdev_window.h文件,内容如下:
/*1. This confidential and proprietary software may be used only as2. authorised by a licensing agreement from ARM Limited3. (C) COPYRIGHT 2008-2011 ARM Limited4. ALL RIGHTS RESERVED5. The entire notice above must be reproduced on all authorised6. copies and copies may only be made to the extent permitted7. by a licensing agreement from ARM Limited.*//**8. @file fbdev_window.h9. @brief A window type for the framebuffer device (used by egl and tests)*/extern "C" {typedef enum{FBDEV_PIXMAP_DEFAULT = 0,FBDEV_PIXMAP_SUPPORTS_UMP = (1<<0),FBDEV_PIXMAP_ALPHA_FORMAT_PRE = (1<<1),FBDEV_PIXMAP_COLORSPACE_sRGB = (1<<2),FBDEV_PIXMAP_EGL_MEMORY = (1<<3) /* EGL allocates/frees this memory */} fbdev_pixmap_flags;typedef struct fbdev_window{unsigned short width;unsigned short height;} fbdev_window;typedef struct fbdev_pixmap{unsigned int height;unsigned int width;unsigned int bytes_per_pixel;unsigned char buffer_size;unsigned char red_size;unsigned char green_size;unsigned char blue_size;unsigned char alpha_size;unsigned char luminance_size;fbdev_pixmap_flags flags;unsigned short *data;unsigned int format; /* extra format information in case rgbal is not enough, especially for YUV formats */} fbdev_pixmap;}
交叉编译中OpenGL问题
问题出在安装了libgles2-mesa、libgles2-mesa-dev这两个库上,并且qmake配置的
QMAKE_LIBS_EGL += -lEGL -lGLESv2
QMAKE_LIBS_OPENGL_ES2 += -lGLESv2 -lEGL
两个依赖库都匹配成了libgles2-mesa、libgles2-mesa-dev中的库。在Rockchip系统中如果采用的GPU是官方闭源的驱动,需要安装Rockchip提供的mali库安装包,安装包会将libGLESv2.so、libEGL.so安装到/usr/lib/aarch64-linux-gnu/mali下,所以上面的库连接就会出错,通过在/usr/lib/aarch64-linux-gnu创建libGLESv2.so、libEGL.so符号连接,解决该问题。
ln -s mali/libEGL.so libEGL.soln -s mali/libGLESv2.so libGLESv2.so
另外config.log如果提示缺少glUniform1f、glClear两个函数的定义。可以通过下面命令在libmali.so找到。
strings libmali.so | grep "glUniform1f"
strings libmali.so | grep "glClear"
通过以上修改后scene3d可正常运行,并且GPU的使用率也有变化。
欢迎持续关注,共同探讨!
交叉编译中OpenGL问题
Copyright © 2021 陕西瑞迅电子信息技术有限公司 All Rights Reserved 备案号:陕ICP备13008281号