zoukankan      html  css  js  c++  java
  • 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

    出错提示如下

    GLES3/gl3.h: No such file or directory

    经查找,是qopengl.h中包含了该文件,如上图所示。

    既然包含了不存在的文件,那么对应解决方案可以取消包含该文件或添加该文件到对应目录,或者替换编译工具

    经测试,以上三种方案都是可行的

    方案一:取消包含该头文件

    包含该头文件的原因是定义了

    QT_OPENGL_ES_3 

    这个宏,查找该宏定义出处,发现是
    qconfig.h头文件中(全路径为:)

    /opt/fsl-imx-x11/4.1.15-2.1.0/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.15-2.1.0/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的例程时没有出现过以上问题。因此该方案同样可行。

    方案一和方案二仅测试可编译成功,因身边没有开发板,也就没有测试在开发板中运行了。



  • 相关阅读:
    C# 保存文件到数据库
    4.Linq To Xml操作XML增删改查
    服务器端包含 SSI简介
    htm、html、shtml网页区别
    localStorage使用总结
    jquery.cookie.js——jquery的cookie插件
    javascript:;与javascript:void(0)使用介绍
    JS中函数void()
    gitlab使用 —— 多人协同工作(重要技能)
    cookie、localstroage与sessionstroage的一些优缺点
  • 原文地址:https://www.cnblogs.com/GregTse/p/12031645.html
Copyright © 2011-2022 走看看