关于mingw编译Qt时无法编译opengl es2(ANGLE)版本的问题
? 最近在使用mingw64(gcc 8.1.0)編譯Qt5.12.0時(shí),發(fā)現(xiàn)config總是檢測(cè)opengl es2不通過(guò),雖然可以使用opengl desktop,但根據(jù)qt官方的建議,如果不直接使用opengl函數(shù),還是使用opengl es2版本兼容性更好,而且opengl es2和qt自帶的mutimedia視頻播放或QtAV庫(kù)視頻播放配合更好,內(nèi)網(wǎng)外網(wǎng)也沒(méi)有找到解決方案,最終花了一個(gè)晚上的時(shí)間找到了問(wèn)題。
?
Qt的configure時(shí)opengl es2檢測(cè)不通過(guò)的原因是找不到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 檢測(cè)DirectX SDK是否安裝是通過(guò)查找d3d11.lib和fxc.exe實(shí)現(xiàn)的,而mingw的d3d11庫(kù)為libd3d11.a,同時(shí)需將fxc.exe的路徑加入環(huán)境變量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,
如果沒(méi)有安裝visual studio的話只能老實(shí)地去下載directx sdk。
?
但還沒(méi)有完,configuire通過(guò)后如果編譯到angle,會(huì)報(bào)錯(cuò) Cannot determine DirectX SDK location. Please set DXSDK_DIR environment variable.
如果安裝了directx sdk不會(huì)報(bào)錯(cuò),但安裝directx sdk需要從下載500多m的安裝文件,特別是微軟服務(wù)器在國(guó)內(nèi)的下載速度..
解決辦法是按照directx sdk的目錄結(jié)構(gòu)模擬建立directx sdk目錄
在C盤建立directx_sdk目錄,建立 Utilities\\bin目錄
cd進(jìn)Utilities\\bin目錄,通過(guò)mklink 建立到C:\Program Files (x86)\Windows Kits\8.1\bin\x64和C:\Program Files (x86)\Windows Kits\8.1\bin\x86的符號(hào)鏈接
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環(huán)境變量,指向C:\directx_sdk目錄
轉(zhuǎn)載于:https://www.cnblogs.com/nkzhangkun/p/10126005.html
總結(jié)
以上是生活随笔為你收集整理的关于mingw编译Qt时无法编译opengl es2(ANGLE)版本的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python的hashlib库
- 下一篇: 爬虫简单入门:第一个简单爬虫