最近在使用mingw64(gcc 8.1.0)编译Qt5.12.0时,发现config总是检测opengl es2不通过,虽然可以使用opengl desktop,但根据qt官方的建议,如果不直接使用opengl函数,还是使用opengl es2版本兼容性更好,而且opengl es2和qt自带的mutimedia视频播放或QtAV库视频播放配合更好,内网外网也没有找到解决方案,最终花了一个晚上的时间找到了问题。

Qt的configure时opengl es2检测不通过的原因是找不到directx sdk,可以在qt-everywhere-src-5.12.0\qtbase\src\gui\configure.json中修改

        "directx": {"label": "DirectX SDK","type": "directX","files": ["d3dcompiler.h","d3d11.lib","fxc.exe"]},

修改为

        "directx": {"label": "DirectX SDK","type": "directX","files": ["d3dcompiler.h","libd3d11.a","fxc.exe"]},

从这里可以看出configure 检测DirectX SDK是否安装是通过查找d3d11.lib和fxc.exe实现的,而mingw的d3d11库为libd3d11.a,同时需将fxc.exe的路径加入环境变量path。

windows sdk 8.1及10都自带有directx sdk,fxc.exe文件在C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64 或C:\Program Files (x86)\Windows Kits\8.1\bin\x64,

如果没有安装visual studio的话只能老实地去下载directx sdk。

但还没有完,configuire通过后如果编译到angle,会报错 Cannot determine DirectX SDK location. Please set DXSDK_DIR environment variable.

如果安装了directx sdk不会报错,但安装directx sdk需要从下载500多m的安装文件,特别是微软服务器在国内的下载速度..

解决办法是按照directx sdk的目录结构模拟建立directx sdk目录

在C盘建立directx_sdk目录,建立 Utilities\\bin目录

cd进Utilities\\bin目录,通过mklink 建立到C:\Program Files (x86)\Windows Kits\8.1\bin\x64和C:\Program Files (x86)\Windows Kits\8.1\bin\x86的符号链接

mklink /D x64 C:\Program Files (x86)\Windows Kits\8.1\bin\x64
mklink /D x86 C:\Program Files (x86)\Windows Kits\8.1\bin\x86

不一定必须是win8.1 sdk,也可以是win10 sdk,比如 C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64

最后建立DXSDK_DIR环境变量,指向C:\directx_sdk目录

转载于:https://www.cnblogs.com/nkzhangkun/p/10126005.html

关于mingw编译Qt时无法编译opengl es2(ANGLE)版本的问题相关推荐

  1. minGw64编译Qt时遇到too many sections问题

    minGw64编译Qt时遇到too many sections问题: 修改\Src\qtbase\mkspecs\win32-g++\qmake.conf中 QMAKE_CFLAGS         ...

  2. linux 编译QT atom,QT5 编译使用TagLib

    需要使用TagLib读取媒体信息, 记录下编译过程 使用的文件, 使用Taglib库版本 1.6.3 QT版本 5.12.3 x32 MinGW CMAKE版本 3.9.0 使用CMAKE 配置Tag ...

  3. linux系统编译qt代码需要编译qt,linux下如何静态编译QT库,以及如何静态编译自己的程序...

    Qt采用编译的方式安装的时候,配置中默认的编译方式是动态编译的,但是有时候你编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译你的程序,Qt要实现静态编译必须库文件也是静态编译的,所 ...

  4. 树莓派初次编译Qt时系统卡死问题

    树莓派编译程序时遇到卡死的问题 尝试增加树莓派的swap交换空间, sudo nano /etc/dphys-swapfile 找到 CONF_SWAPSIZE,改变后面的数字即调整交换空间的大小,单 ...

  5. cocos编译java时改变使用的javac的版本

    使用cocos命令编译android程序时,总是提示使用的javac是1.5版本.由于不支持diamond运算符,必须1.7以上才行. 在Cocos/frameworks/cocos2d-x-3.9/ ...

  6. 编译qt指定glibc_glibc 编译安装

    glibc2.23. 1.试图运行程序 提示"libc.so.6: version `GLIBC_2.14′ not found",原因是系统的glibc版本太低,软件编译时使用了 ...

  7. qtwebengine html5,Qt5 编译 Qt WebEngine

    由于 Qt5 自带的 WebEngine 默认不支持 MP3.MP4 格式的多媒体文件,如果想要开启播放 MP3.MP4 的功能,则需要编译 Qt WebEngine . 这篇教程将演示如何在 Qt5 ...

  8. 树莓派学习::qt5.10.1交叉编译【带opengl ES2】到官方Raspbian Stretch

    qt5.10.1交叉编译[带opengl ES2]到官方Raspbian Stretch 本次更新是树莓派学习::qt5.10.1交叉编译[带opengl ES2](armv8 64位)的延续,这次编 ...

  9. Qt 之 Qt/Qt Lite 自编译详解(VS/MinGW/...)

    2018/3/24 目前QT更新到了5.10.1.文章增加了对该版本的说明. 2020/9/5 目前QT更新到了5.15.0.文章更新了部分内容 写在前面   现在,网上关于 Qt 编译的文章数不胜数 ...

最新文章

  1. Python实现决策树(Decision Tree)分类
  2. datepick二格式 化时间_考研经验分享(三)英语二作文模板
  3. 【转】使用ssh-copy-id 快速的配置免密登录
  4. Python基础——PyCharm版本——第一章、PyCharm工具的安装与使用
  5. Java学习小程序(8)求数组元素的最大值并放在最后一位
  6. CAN总线在嵌入式Linux下驱动程序的实现
  7. 服务发现与健康监测框架Consul-DNS转发的应用
  8. matlab中结构体的定义,matlab中怎么定义结构体啊 !!!
  9. 轴固定位置_何为轴?来看看你对轴了解了么
  10. javascript——js string 转 int 注意的问题——parseInt(转)
  11. DBA 常用的软件工具有哪些(分享篇)?
  12. Firebug工具的介绍与安装
  13. 20200807-玻璃涨停,隔夜低开,纯碱高开,今天晚上就是空头盛宴,43500了哈哈哈,赚钱了,别做了
  14. 小学计算机教师业务笔记,小学教师业务笔记
  15. clamav的unrar解压模块加载
  16. php ci CodeIgniter框架图片缩略图处理类优化 缩放到固定大小
  17. 【Java】23 函数式编程
  18. 制造业ERP系统如何管理生产工序?具体流程有哪些?
  19. 浅谈BIM技术在“智慧工地”建设中的应用
  20. iOS 图标icon尺寸大全

热门文章

  1. where/、trim/ 标签的使用
  2. POJ - 1469 COURSES (匈牙利算法入门题)
  3. 找规律 百度之星资格赛 1001 大搬家
  4. SmartDraw2008破解过程总结
  5. C#将照片或图片转化为byte[]存入数据库,从数据库中读照片
  6. MPlayer1.1.1移植记录
  7. LVS+Keepalived 高可用群集的介绍和搭建步骤
  8. java反序列化漏洞 tomcat_CVE-2020-9484 Apache Tomcat反序列化漏洞浅析
  9. spring boot api文档_精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用
  10. nginx 重定向_虚拟机中安装nginx,重定向到resin