工作环境

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 解决方法的更多相关文章

  1. 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 ...

  2. 全志TinaLinux编译错误fatal error: unicode/ucnv.h: No such file or directory

    今天开始正式干活了 拿到一个全志Tina的板子还有一个SDK压缩包,要求我这周(只剩一天半...)就要把sdk编译通过并且把板子跑起来. 还特别跟我说他们试了下这个sdk编译没法通过,会报错... 竟 ...

  3. Qt 【“QWebView/private/qwebview interface p.h”: No such file or directory】

    这种情况下需要在pro工程文件中添加 QT += webkitwidgets 然后清理当前工程, 重新构建,在运行即可. 如果还不行,那么在#include <QWebView>这样替换成 ...

  4. 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 ...

  5. CentOS编译安装软件过程中遇到zlib.h: No such file or directory

      使用命令:yum install zlib-devel  解决问题.

  6. tesseract编译错误:fatal error: allheaders.h: No such file or directory

    错误描述: globaloc.cpp::: fatal error: allheaders.h: No such file or directory #include "allheaders ...

  7. Linux中配置jdk环境变量出错:bad ELF interpreter: No such file or directory解决方法

    yum install glibc.i686 重新安装,javac成功 如果还有如下类系错误 再继续安装包 error while loading shared libraries: libstdc+ ...

  8. 关于ubuntu下qt编译显示Cannot connect creator comm socket /tmp/qt_temp.xxx/stub-socket的解决的方法

    今天在ubuntu下安装了qtcreator,准备測试一下能否用.果然一測试就出问题了,简单编写后F5编译在gnome-terminal中出现 Cannot connect creator comm ...

  9. 关于ubuntu下qt编译显示Cannot connect creator comm socket /tmp/qt_temp.xxx/stub-socket的解决办法

    今天在ubuntu下安装了qtcreator,准备测试一下是否能用,果然一测试就出问题了,简单编写后F5编译在gnome-terminal中出现 Cannot connect creator comm ...

随机推荐

  1. https本地自签名证书添加到信任证书访问

    1.背景 本文适用于基于https(http+ssl)的网站通信.本地调试等,上线是请寻找免费 ssl证书申请. 本地调试过程中,一些特殊的场景需要我使用http+ssl通信,比如在Chrome中使用 ...

  2. 【ML基础】t-SNE(t-distributed stochastic neighbor embedding)原理及推导

    前言 参考 1. t-SNE原理与推导: 完

  3. Centos7个性化桌面美化

    个人电脑系统由Windows转Kali(Linux)再转Windows,工作后因为都是接触的Centos7系统,再加上厌烦年Win10,于是再次投回LInux的怀抱,将电脑系统直接重装为Linux系统 ...

  4. mysql数据库事务类型

    出自:https://blog.csdn.net/u014439239/article/details/78086729 数据库事务有不同的隔离级别,不同的隔离级别对锁的使用是不同的,锁的应用最终导致 ...

  5. go中值传递、引用传递、指针传递的区别

    go语言中的值类型: int.float.bool.array.sturct等 值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数 声明一个值类 ...

  6. DevOps - 基础设施配置测试工具Serverspec

    1 - Serverspec Serverspec是可以测试基础设施配置的工具,能够验证配置管理工具(Ansible.Puppet.Chef等)的配置结果,可以实现基础设施测试代码化自动化. 测试代码 ...

  7. 【Spring Cloud学习之五】配置中心

    环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2 Spring Cloud 1.2 一.什么是配置中心在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实 ...

  8. Redis 分布式锁,C#通过Redis实现分布式锁(转)

    目录(?)[+] 分布式锁一般有三种实现方式: 可靠性   分布式锁一般有三种实现方式: 1. 数据库乐观锁; 2. 基于Redis的分布式锁; 3. 基于ZooKeeper的分布式锁.本篇博客将介绍 ...

  9. Selenium+java - 操作滚动条

    前言 在写脚本时,总会遇到一种情况,就是当滚动拉倒最下面了,表单或者下拉框.按钮这些元素未在当前页面展示,而webdriver提供的方法都是操作当前页面可见的元素,这时我们使用JavaScript操作 ...

  10. JVM性能调优的6大步骤,及关键调优参数详解

    JVM性能调优方法和步骤1.监控GC的状态2.生成堆的dump文件3.分析dump文件4.分析结果,判断是否需要优化5.调整GC类型和内存分配6.不断分析和调整JVM调优参数参考 对JVM内存的系统级 ...