Qt World Summit: Submit your Presentation

Building 5.12.1 32-bit static Qt for MSVC on Windows 10: The system cannot find the file specified (qgltf5.pdb).

  • Hi all,

    Trying to build a 32-bit static release of Qt 5.12 and am having an issue. Originally I was getting Makefile [module-qtdeclarative-install_subtargets] Error 3, but I got past that by installing Python and Pearl.

    Anyway, for the current issue, here is all the relevant info I can think of:

    System -

    • Windows 10 64-bit
    • Windows 10 SDK 10.1.17763.132 installed
    • Microsoft Visual Studio 2017 installed
    • Regular Qt (dynamic) 5.12 MSVC 32-bit & 64-bit installed at C:\Engineering\Development\Qt
    • Python 3.7.3 32-bit installed and added to path as C:\Engineering\Development\Python\37-32\Scripts\ & C:\Engineering\Development\Python\37-32\
    • Strawberry Pearl 32-bit installed and added to path as C:\Engineering\Development\StrawberyPerl\c\bin, C:\Engineering\Development\StrawberyPerl\perl\site\bin, and C:\Engineering\Development\StrawberyPerl\perl\bin

    Procedure -

    1. I downloaded http://qt.mirror.constant.com/archive/qt/5.12/5.12.1/single/qt-everywhere-src-5.12.1.zip and extracted it to C:\Engineering\Development\Qt\src\static\qt-everywhere-src-5.12.1
    2. I opened x86 Native Tools Command Prompt for VS 2017 and entered:
    cd C:\Engineering\Development\Qt\src\static\qt-everywhere-src-5.12.1
    1. Then I ran:
    configure.bat -static -debug-and-release -prefix C:\Engineering\Development\Qt\static\5.12.1\msvc2017 -platform win32-msvc2017 -opensource -confirm-license -skip webengine -nomake tools -nomake examples -nomake tests -static-runtime -opengl desktop -force-debug-info -optimize-size -no-pch

    which seemed to complete successfully

    1. Next I did:
    C:\Engineering\Development\Qt\Tools\QtCreator\bin\jom -j 8

    which also seemed to complete successfully

    1. Finally I ran:
    C:\Engineering\Development\Qt\Tools\QtCreator\bin\jom -j 8 install

    It continued on for quite some time but then prematurely ended with:

    copy /y ..\..\bin\qgltf.exe C:\Engineering\Development\Qt\static\5.12.1\msvc2017\bin\qgltf.exe
            1 file(s) copied.
            copy /y ..\..\bin\qgltf5.pdb C:\Engineering\Development\Qt\static\5.12.1\msvc2017\bin\qgltf5.pdb
    The system cannot find the file specified.

    Any ideas? Not really sure how to even begin figuring this out as I always just use pre-built binaries of libraries when available.

  • Lifetime Qt Champion


    Sorry I can't answer that one.

    Can you try again with a more recent version of the LTS ?
    Qt 5.12.3 was released a few days ago.

  • @oblivioncth said in Building 5.12.1 32-bit static Qt for MSVC on Windows 10: The system cannot find the file specified (qgltf5.pdb).:

    C:\Engineering\Development\Qt\Tools\QtCreator\bin\jom -j 8

    I wanted to keep the versions for the standard and static versions consistent, but its not like it would really matter since its just a small revision difference. So, I attempted to build 5.12.3 this time and while I was at it I grabbed the dynamically linked version of 5.12.3 from the maintenance tool as well.

    This time I ran the Visual Studio Native Tools command prompt as an administrator since I figured that had a shot at mattering even though I didn't see it mentioned anywhere and wasn't doing this is a UAC protected directory.

    And... it built completely with no issues and I was able to produced a statically linked version of the app I'm working on like I wanted to. I don't know if there was a bug in the 5.12.3 source, if it actually was running the prompt as administrator, if there was just a simultaneous access issue with some of the files/tools on the last run, or if it was just a fluke, but everything works fine now.

    The build ended on the same two lines but succeeded in copying qgltf.pdb instead of not finding it and the process took much longer than the previous attempt, so I'm guessing that there were errors earlier in the process that didn't stop the build script so I didn't catch them.