Arm Qt编译Qt例程出错 GLES3/gl3.h: No such file or directory 解决方法
工作环境
PC:Ubuntu18.04
QtCreator: 4.8.2
交叉编译环境:野火imxull6开发板提供的 5-编译工具链->qt交叉编译工具
在之前博客配置成功的交叉编译环境,编译Qt5.9.8自带部分Example时,出现
GLES3/gl3.h: No such file or directory
本人使用的例程为:
$QT_INSTALL_PATH/Examples/Qt-5.9.8/widgets/widgets/imageviewer
出错提示如下

经查找,是qopengl.h中包含了该文件,如上图所示。
既然包含了不存在的文件,那么对应解决方案可以取消包含该文件或添加该文件到对应目录,或者替换编译工具
经测试,以上三种方案都是可行的
方案一:取消包含该头文件
包含该头文件的原因是定义了
QT_OPENGL_ES_3
这个宏,查找该宏定义出处,发现是
qconfig.h头文件中(全路径为:)
/opt/fsl-imx-x11/4.1.-2.1./sysroots/cortexa7hf-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qconfig.h
中#117
#if defined(QT_OPENGL_ES_3) && defined(QT_NO_OPENGL_ES_3)
# undef QT_OPENGL_ES_3
#elif !defined(QT_OPENGL_ES_3) && !defined(QT_NO_OPENGL_ES_3)
# define QT_OPENGL_ES_3
#endif
由于项目中没有定义
QT_OPENGL_ES_3
QT_NO_OPENGL_ES_3
因此在这里会定义
# define QT_OPENGL_ES_3
找到出处,那么取消该宏定义就简单了
方法一: 删除qconfig.h中以上关于定义 QT_OPENGL_ES_3 的相关代码
方法二: 在qconfig.h 中 开头位置添加
#define QT_NO_OPENGL_ES_3
方法三: 由图一出错提示可知,源码文件是因为包含<QtWidgets>而包含<qopengl.h>,所以可以在源码文件包含<QtWidgets>添加如下代码
#define QT_NO_OPENGL_ES_3 //在源码中包含QtWidgets的文件上方添加此行,可在编译此文件时,不再包含<GLES3/gl3.h>
#include <QtWidgets>

方案二:添加对应头文件
本人没有重新移植gl3相关库,在终端进入如下目录
cd /opt/fsl-imx-x11/4.1.-2.1./sysroots/cortexa7hf-neon-poky-linux-gnueabi/usr/include/GLES2/gl2.h
sudo mkdir GLES3
sudo cp GLES2/gl2.h GLES3/gl3.h
可创建gl3.h文件,编译成功(此方法未知会否出现其他意外)
方案三:替换编译工具
由于本人搭建交叉编译环境后就已经重新编译Qt5.9.8的源码移植到开发板中,而且一直使用移植后的版本,使用Qt的例程时没有出现过以上问题。因此该方案同样可行。
方案一和方案二仅测试可编译成功,因身边没有开发板,也就没有测试在开发板中运行了。
Arm Qt编译Qt例程出错 GLES3/gl3.h: No such file or directory 解决方法的更多相关文章
- Qt编译出错 GL/gl.h:No such file or directory
		系统:Ubuntu18.04 软件:QtCreator4.8 Qt5.9.8 编译Qt Widgets Application类型的项目时,出现错误,提示: GL/gl.h: No such file ... 
- 全志TinaLinux编译错误fatal error: unicode/ucnv.h: No such file or directory
		今天开始正式干活了 拿到一个全志Tina的板子还有一个SDK压缩包,要求我这周(只剩一天半...)就要把sdk编译通过并且把板子跑起来. 还特别跟我说他们试了下这个sdk编译没法通过,会报错... 竟 ... 
- Qt 【“QWebView/private/qwebview interface p.h”: No such file or directory】
		这种情况下需要在pro工程文件中添加 QT += webkitwidgets 然后清理当前工程, 重新构建,在运行即可. 如果还不行,那么在#include <QWebView>这样替换成 ... 
- Qt SDK Issue cstdlib: fatal error: stdlib.h: No such file or directory
		*To reproduce the issue, I've tried the following solutions which did not help:* *1) Globally remove ... 
- CentOS编译安装软件过程中遇到zlib.h: No such file or directory
		使用命令:yum install zlib-devel 解决问题. 
- tesseract编译错误:fatal error: allheaders.h: No such file or directory
		错误描述: globaloc.cpp::: fatal error: allheaders.h: No such file or directory #include "allheaders ... 
- Linux中配置jdk环境变量出错:bad ELF interpreter: No such file or directory解决方法
		yum install glibc.i686 重新安装,javac成功 如果还有如下类系错误 再继续安装包 error while loading shared libraries: libstdc+ ... 
- 关于ubuntu下qt编译显示Cannot connect creator comm socket /tmp/qt_temp.xxx/stub-socket的解决的方法
		今天在ubuntu下安装了qtcreator,准备測试一下能否用.果然一測试就出问题了,简单编写后F5编译在gnome-terminal中出现 Cannot connect creator comm ... 
- 关于ubuntu下qt编译显示Cannot connect creator comm socket /tmp/qt_temp.xxx/stub-socket的解决办法
		今天在ubuntu下安装了qtcreator,准备测试一下是否能用,果然一测试就出问题了,简单编写后F5编译在gnome-terminal中出现 Cannot connect creator comm ... 
随机推荐
- Windows下启动、重启、停止nginx
			在Windows下操作nginx,需要打开cmd 进入到nginx的安装目录下 1.启动nginx: start nginx 或 nginx.exe 2.停止nginx(stop是快速停止nginx, ... 
- Java进程故障排查思路及步骤
			故障场景 Java进程出现问题,通常表现出如下现象: Web应用响应时间长/超时,甚至不响应 CPU使用率极高/低,频繁出现Full GC,甚至OutOfMemoryError 响应时间长.超时,甚至 ... 
- 开源录屏软件Capture推荐
			参考链接:有哪些值得推荐的电脑录屏软件与手机录屏软件? - 霸都丶傲天的回答 - 知乎 下载地址(9.0支持中文) 
- 【Docker学习之四】Docker自定义容器镜像
			环境 docker-ce-19.03.1-3.el7.x86_64 centos 7 一.使用已有容器创建镜像-docker commit1.查看本地已有镜像 [root@node105 ~]# do ... 
- activiti学习5:开启流程和流程前进
			目录 activiti学习5:开启流程和流程前进 一.流程和任务的关系 二.开启流程 2.1根据流程定义key开启流程 三.查询用户任务 3.1 TaskQuery 四.完成任务 activiti学习 ... 
- 【idea】设置背景颜色
			File->Settings->Editor->Color Scheme->General->Text->Default text->Background 
- 引用类型前需要加ref?
			方法的参数前加ref代表的是传的参数的地址,值类型前加ref的作用相当于把这个值类型当成引用类型在用,那引用类型作为参数有一种情况也需要加ref,不然得到的值会有差. 不加ref: class Pro ... 
- 用PowerDesigner将SQL转pdm文件
			1.打开新建的pdm文件,File->Reverse Enginner->Databases 2.选择对应数据库(DBMS),点击确定,然后添加SQL文件 3.点击确定 注:如果DBMS没 ... 
- 基于layUI调用后台数据实现区域信息级联查询
			基于layUI调用后台数据实现区域信息级联查询 1.基本思路 后台提供根据区域编码查询区域列表公共接口 页面初始化调用后台接口加载所有省份 点击省份将省份区域编码传入后台查询该省份下所有地市信息,以此 ... 
- Google Colab——零成本玩转深度学习
			前言 最近在学深度学习HyperLPR项目时,由于一直没有比较合适的设备训练深度学习的模型,所以在网上想找到提供模型训练,经过一段时间的搜索,最终发现了一个谷歌的产品--Google Colabora ... 
