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

  最近在使用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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值