Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-55657

QT5.7 Build Fails with -opengl dynamic

    XMLWordPrintable

Details

    • Suggestion
    • Resolution: Duplicate
    • Not Evaluated
    • None
    • 5.7.0
    • Build System
    • 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

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              buddenha Oswald Buddenhagen
              ccx004 Colin Bruce
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes