Details
-
Suggestion
-
Resolution: Duplicate
-
Not Evaluated
-
None
-
5.7.0
-
None
-
Windows 8.1
MinGW-W64 4.3
GCC 6.2
G++ 6.2
QT 5.7 sources
Description
mingw32-make fails to build qtbase/src/angle/src/libGLESv2 when -opengl dynamic is one of the configure parameters. I suspect any use of -opengl will show the same problem. The important section of the log is:
mingw32-make[6]: Entering directory 'E:/Software/Qt/qt-build/qtbase/src/angle/src/libGLESv2' "C:\Program Files (x86)\Windows Kits\8.1\Utilities\bin\x86\fxc.exe" /nologo /E VS_Passthrough2D /T vs_4_0_level_9_3 /Fh libANGLE\renderer\d3d\d3d11\shaders\compiled\passthrough2d11vs.h E:\Software\Qt\qt-everywhere-opensource-src-5.7.0\qtbase\src\3rdparty\angle\src\libANGLE\renderer\d3d\d3d11\shaders\Passthrough2D11.hlsl process_begin: CreateProcess(NULL, "C:\Program Files (x86)\Windows Kits\8.1\Utilities\bin\x86\fxc.exe" /nologo /E VS_Passthrough2D /T vs_4_0_level_9_3 /Fh libANGLE\renderer\d3d\d3d11shaders\compiled\passthrough2d11vs.h E:\Software\Qt\qt-everywhere-opensource-src-5.7.0\qtbase\src\3rdparty\angle\src\libANGLE\renderer\d3d\d3d11\shaders\Passthrough2D11.hlsl, ...) failed. make (e=2): The system cannot find the file specified. Makefile.Release:743: recipe for target 'libANGLE/renderer/d3d/d3d11/shaders/compiled/passthrough2d11vs.h' failed mingw32-make[6]: *** [libANGLE/renderer/d3d/d3d11/shaders/compiled/passthrough2d11vs.h] Error 2 mingw32-make[6]: Leaving directory 'E:/Software/Qt/qt-build/qtbase/src/angle/src/libGLESv2' Makefile:34: recipe for target 'release' failed
The missing file is:
"C:\Program Files (x86)\Windows Kits\8.1\Utilities\bin\x86\fxc.exe"
which is the wrong path. There is no "Utilities" directory in the Windows SDK for Windows 8.1. At least there isn't in the copy I downloaded last night. This directory path is hardcoded in:
qt-everywhere-opensource-src-5.7.0\qtbase\src\angle\src\common.pri
I fixed it by replacing the lines:
FXC = \"$${DX_DIR}Utilities\\bin\\x64\\fxc.exe\" FXC = \"$${DX_DIR}Utilities\\bin\\x86\\fxc.exe\"
with
FXC = \"$${DX_DIR}bin\\x64\\fxc.exe\" FXC = \"$${DX_DIR}bin\\x86\\fxc.exe\"
I doubt if this is the correct way to fix it though hence the suggestion.
This got quite a bit further although it then hit another error.
I am running Windows 8.1 on a 64 bit machine and using a 64 bit compiler but I notice it selected the 32 bit version of fxc.. I don't know if this is significant.
Attachments
Issue Links
- relates to
-
QTBUG-52487 Remove DirectX SDK 10 dependency from '-opengl dynamic' builds using MinGW-W64
-
- Closed
-