环境:需求是armV8.2环境下使用qt库中qgl、qwidget等控件,x86下环境正常使用,在arm环境报错:In file included from /usr/include/aarch64-linux-gnu/qt5/QtOpenGL/qgl.h:45:0,
/usr/include/aarch64-linux-gnu/qt5/QtGui/qopengl.h:105:13: fatal error: GLES3/gl31.h: 没有那个文件或目录

问题分析:arm环境默认qt使用opengl库是GLES,GLES不支持固定管线qt代码的实现,这样有两种方法解决思路,一种是改变qt不再指向使用GLES,而是使用opengl下的GL/gl.h,即正常的opengl;另一种方式是更改代码为活动管线(独立写shader),不再使用qt下插件qgl等。

选择第一种方式:通过重新编译qt源码,我是通过删除自己的qt环境,源码重新编译安装的方式来实现的,现在发现qt是可以共存的,调整qtcreator指向到新编译好的qt库就好了。

具体过程:

1. 下载qt源码http://download.qt.io/archive/qt/,选择自己需要的版本,windows下载zip压缩版本,linux下载tar版本压缩,我先现在的zip,configure时总是提示行数有\r这个错误,更改到tar版本通过,我下载的是qt-everywhere-opensource-src-5.9.5.tar.xz源码。

2. 编译前需要安装apt-get install libssl1.0-dev,解压后运行./configure  -opengl desktop -nomake tests,中间-opengl destop是qt选择指定哪个opengl版本,咱们指定的版本是原生opengl版本。默认make install 到/usr/local/Qt-5.9.5/文件夹。

3.设置qtcreator指向版本,安装源码编译并不会顶掉原来的qt配置,vim ~/.profile 添加

QTDIR=/usr/local/Qt-5.9.5
PATH=$QTDIT/bin:$PATH
MANPATH=$QTDIR/doc/man:$MANPATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QTDIR PATH LD_LIBRARY_PATH

cd到/usr/lib/aarch64-linux-gnu/qtchooser,vim default.conf更改到新的qmake以及qt库

/usr/local/Qt-5.9.5/bin
/usr/local/Qt-5.9.5/lib

运行qmake -v时,查看已经替换了

QMake version 3.1
Using Qt version 5.9.5 in /usr/local/Qt-5.9.5/lib

执行sudo qtchooser -install Qt5.9.5 /usr/local/Qt-5.9.5/bin/qmake 查看qtchooser -l,已经添加进去了

4
5
Qt5.9.5
default
qt4-aarch64-linux-gnu
qt4
qt5-aarch64-linux-gnu
qt5

执行export QT_SELECT=Qt5.9.5,设置qt默认版本

4. 打开qtcreator,重新配置,点击工具,构建与配置,设置默认Qt Versions到新编译好的路径qmake即可,正常这里只要选择默认和应用就能成功。

5. qtcreator中文输入法不能用时 sudo apt-get install fcitx-frontend-qt5,查看安装路径dpkg -L fcitx-frontend-qt5 | grep .so

/usr/lib/aarch64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so

执行sudo cp /usr/lib/aarch64-linux-gnu/qtcreator/plugins/libfcitxplatforminputcontextplugin.so /usr/local/Qt-5.9.5/plugins/platforminputcontexts,修改权限sudo chmod 775 libfcitxplatforminputcontextplugin.so,重启成功

6. 重新编译报错的项目,这次使用的是正常的opengl版本,成功,祝好运

ps:参考https://blog.csdn.net/xiaoxiaoyusheng2012/article/details/45196879

https://blog.csdn.net/xyping_/article/details/82810928

https://blog.csdn.net/aamahone/article/details/86515536

https://blog.csdn.net/u010320855/article/details/71629948/

fatal error: GLES3/gl31.h: 没有那个文件或目录相关推荐

  1. 如何解决编译linux内核(解决声卡问题),遭遇fatal error: linux/limits.h: 没有那个文件或目录

    如何解决编译linux内核(解决声卡问题),遭遇fatal error: linux/limits.h: 没有那个文件或目录 参考文章: (1)如何解决编译linux内核(解决声卡问题),遭遇fata ...

  2. 编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录

    编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录 其实numpy已经是安装的,anaconda2里面有,python中import num ...

  3. fatal error: alsa/asoundlib.h: 没有那个文件或目录错误解决办法

    在编译ffmpeg4.2代码的时候,出现以下编译错误: libavdevice/alsa_enc.c:40:10: fatal error: alsa/asoundlib.h: 没有那个文件或目录 解 ...

  4. fatal error: openssl/evp.h: 没有那个文件或目录

    在陆佳华<嵌入式系统软硬件协同设计实战指南 第2版>一书的第13章节 编译U-boot时会遇到2个错误.原因很简单,就从一开始的错误提示着手: fatal error: openssl/e ...

  5. 编译R3LIVE报错: fatal error: livox_ros_driver/CustomMsg.h: 没有那个文件或目录 4 | #include <livox_ros_driver/

    安装编译了livox_ros_driver和livox_SDK,在编译R3LIVE算法时,遇到报错 fatal error: livox_ros_driver/CustomMsg.h: 没有那个文件或 ...

  6. fatal error: sophus/se3.h: 没有那个文件或目录

    fatal error: sophus/se3.h: 没有那个文件或目录 0.引言 1.原因 2.非模板类sophus 3.模板类sophus 4.多版本安装 0.引言 sophus已经安装,但是编译 ...

  7. fatal error: GL/glew.h: 没有那个文件或目录

    搜索libglew的版本 #apt-cache search glew libglew-dbg - OpenGL Extension Wrangler (debugging symbols) libg ...

  8. 解决 fatal error: i2c/smbus.h: 没有那个文件或目录 #include <i2c/smbus.h>

    编译功能包报错 解决方案 sudo apt-get install libi2c-dev

  9. ROS问题解决_fatal error: ros/ros.h: 没有那个文件或目录 #include “ros/ros.h“

    参考:[ROS-解决问题] fatal error: ros/ros.h: 没有那个文件或目录_踏破万里无云的博客-CSDN博客 原因是功能包的CMakelists.text文件里面少了东西,find ...

最新文章

  1. 浅谈ClickableSpan , 实现TextView文本某一部分文字的点击响应
  2. FisherFace 进行人脸分裂
  3. 如何将html表单转换成url,JS表单传值和URL编码转换
  4. Tomcat的安装和配置及出错处理
  5. “《面对面---做好每一天》--中国短道速滑教练李琰”读后感
  6. android 双系统 一加5,[一加2][双ROM]一加手机2安装双系统教程
  7. 机器学习实践指南(四)—— 算法的细节
  8. 【渝粤教育】电大中专市场营销管理 (2)_1作业 题库
  9. (转)李嘉诚:成功源于花90%时间考虑失败
  10. Python 开发 利用SQLmap API接口进行批量的SQL注入检测.(SRC挖掘)
  11. 左联接、右联接、内联接、自然联接
  12. elasticsearch6.5.4破解白金版xpack
  13. 11张网络安全思维导图,快收藏!
  14. Eclipse -- 打包 -- MANIFEST.MF 规则
  15. 【leetcode】1849. 将字符串拆分为递减的连续值
  16. Arcgis 熟练和操作
  17. CSS3选择器-属性选择器
  18. 【JAVA】MANIFEST.MF / CERT.SF 中 文件SHA1-Digest计算方法
  19. 央视网商城app_央视网商城“中国好产品联合招商大会”召开
  20. 合并报表软件选哪个?这篇文章两分钟告诉你!

热门文章

  1. Topic路由表- IoT 设备一对多消息通信实战
  2. Python爬虫示例1:获取豆瓣电影正在热播的电影信息
  3. Linux安装谷歌浏览器
  4. OpenWrt开启IPV6设置教程
  5. Discrete_mathematics_with_applications-4th Chapter2 Answer
  6. SpringMVC源代码学习外传(二)如何在重定向时传递参数FlashMap
  7. IntelliJ IDEA让你脱键盘,全键盘操作
  8. 武汉大学计算机学院自主招生考试内容,武汉大学自主招生试题.pdf
  9. 【报告分享】2021颜值经济新消费报告-CBNDATA(附下载)
  10. 2022-2028全球及中国C2C二手交易平台行业研究及十四五规划分析报告