Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. QMake trace issue
Forum Updated to NodeBB v4.3 + New Features

QMake trace issue

Scheduled Pinned Locked Moved Solved General and Desktop
14 Posts 3 Posters 763 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    Cobra91151
    wrote on 18 Sept 2022, 12:01 last edited by
    #1

    Hello!

    I want to add the trace command to my batch file to find out what causes the errors during Qt 5.15.6 compilation. From the docs: https://wiki.qt.io/Qt_Build_System_Glossary#qmake_trace_file

    I have to use this command: -d -d -d >qmake.trace 2>&1
    When I try it in my batch file:

    %qtBuildSourcePath%\configure.bat -verbose -d -d -d >qmake.trace 2>&1 -debug -%qtBuildType% -static-runtime -confirm-license -mp -opensource -nomake examples -no-ltcg -sql-mysql -I "%qtBuildMySqlIncludePath%" -L "%qtBuildMySqlLibPath%" MYSQL_LIBS="-lmysqlclientMTd -lAdvapi32 -lUser32 -lCrypt32 -lGdi32" -ssl -openssl -openssl-linked -I "%qtBuildOpenSSLIncludePath%" -L "%qtBuildOpenSSLLibPath%" OPENSSL_LIBS="-llibcryptoMTd -llibsslMTd -lUser32 -lAdvapi32 -lGdi32 -lCrypt32 -lWs2_32" -prefix "%qtInstallationPath%"
    

    It creates the trace file and breaks the Qt compilation process with the following error: ERROR: Unknown command line option '-d'.:

    Short output:

    + cd qtbase
    + C:\QtBuild\qt-everywhere-src-5.15.6\qtbase\configure.bat -top-level -verbose -d -d -d  -debug -static -static-runtime -confirm-license -mp -opensource -nomake examples -no-ltcg -sql-mysql -I "C:\MySQL\mysql-5.7.39-win32\debug\include" -L "C:\MySQL\mysql-5.7.39-win32\debug\lib" MYSQL_LIBS="-lmysqlclientMTd -lAdvapi32 -lUser32 -lCrypt32 -lGdi32" -ssl -openssl -openssl-linked -I "C:\OpenSSL\openssl-1.1.1q\static\x86\debug\include" -L "C:\OpenSSL\openssl-1.1.1q\static\x86\debug\lib" OPENSSL_LIBS="-llibcryptoMTd -llibsslMTd -lUser32 -lAdvapi32 -lGdi32 -lCrypt32 -lWs2_32" -prefix "C:\QtStatic\5.15.6\msvc2019"
    Bootstrapping qmake ...
    
    jom 1.1.3 - empower your cores
    
    	cl -c -Fo./ -Fdqmake.pdb  -W2 -nologo -O2  /MP /wd4577   -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase\qmake -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase\qmake\library -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase\qmake\generators -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase\qmake\generators\unix -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase\qmake\generators\win32 -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase\qmake\generators\mac  -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase/src/3rdparty/tinycbor/src  -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase/include -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase/include\QtCore -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase/include\QtCore\5.15.6 -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase/include\QtCore\5.15.6\QtCore  -I..\src\corelib\global  -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase\mkspecs\win32-msvc   -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS  -DQT_VERSION_STR=\"5.15.6\" -DQT_VERSION_MAJOR=5 -DQT_VERSION_MINOR=15 -DQT_VERSION_PATCH=6  -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DPROEVALUATOR_FULL  -DQT_NO_FOREACH -DUNICODE -D_ENABLE_EXTENDED_ALIGNED_STORAGE -c -Yc -Fpqmake_pch.pch -TP C:\QtBuild\qt-everywhere-src-5.15.6\qtbase\qmake\qmake_pch.h
    qmake_pch.h
    ....
    	link  /OUT:..\bin\qmake.exe project.obj main.obj ioutils.obj proitems.obj qmakevfs.obj  qmakeglobals.obj qmakeparser.obj qmakeevaluator.obj qmakebuiltins.obj  makefile.obj unixmake.obj unixmake2.obj mingw_make.obj  option.obj winmakefile.obj projectgenerator.obj property.obj meta.obj  makefiledeps.obj metamakefile.obj xmloutput.obj  msvc_nmake.obj msvc_vcproj.obj msvc_vcxproj.obj  msvc_objectmodel.obj msbuild_objectmodel.obj registry.obj qbitarray.obj  qbuffer.obj  qcryptographichash.obj  qfilesystementry.obj  qfilesystemengine.obj  qfilesystemengine_win.obj  qfilesystemiterator_win.obj  qfsfileengine.obj  qfsfileengine_iterator.obj  qarraydata.obj  qbytearray.obj  qbytearraylist.obj  qvsnprintf.obj  qbytearraymatcher.obj  qcalendar.obj  qdatetime.obj  qdir.obj  qdiriterator.obj  qfiledevice.obj  qfile.obj  qtemporaryfile.obj  qabstractfileengine.obj  qfsfileengine_win.obj  qsystemlibrary.obj  qfileinfo.obj  qendian.obj  qglobal.obj  qgregoriancalendar.obj  qhash.obj  qiodevice.obj  qringbuffer.obj  qdebug.obj  qlist.obj  qlocale.obj  qlocale_tools.obj  qlocale_win.obj  qversionnumber.obj  qmalloc.obj  qmap.obj  qoperatingsystemversion.obj  qoperatingsystemversion_win.obj  qregexp.obj  qromancalendar.obj  qutfcodec.obj  qstring.obj  qstringlist.obj  qstringbuilder.obj  qsystemerror.obj  qtextstream.obj  qdatastream.obj  quuid.obj  qrandom.obj  qsettings.obj  qvariant.obj  qsettings_win.obj  qmetatype.obj  qxmlstream.obj  qxmlutils.obj  qnumeric.obj  qlogging.obj  qcborstreamwriter.obj  qcborvalue.obj  qjsoncbor.obj  qjsondocument.obj  qjsonparser.obj  qjsonarray.obj  qjsonobject.obj  qjsonvalue.obj qlibraryinfo.obj qmake_pch.obj ole32.lib advapi32.lib shell32.lib netapi32.lib
    Microsoft (R) Incremental Linker Version 14.29.30146.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
    Info: creating super cache file C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\.qmake.super
    Info: creating cache file C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\.qmake.cache
    ERROR: Unknown command line option '-d'.
    

    Any ideas what causes such issue? What trace command should be correct for qmake? Thank you.

    J 1 Reply Last reply 18 Sept 2022, 12:19
    0
    • C Cobra91151
      18 Sept 2022, 12:01

      Hello!

      I want to add the trace command to my batch file to find out what causes the errors during Qt 5.15.6 compilation. From the docs: https://wiki.qt.io/Qt_Build_System_Glossary#qmake_trace_file

      I have to use this command: -d -d -d >qmake.trace 2>&1
      When I try it in my batch file:

      %qtBuildSourcePath%\configure.bat -verbose -d -d -d >qmake.trace 2>&1 -debug -%qtBuildType% -static-runtime -confirm-license -mp -opensource -nomake examples -no-ltcg -sql-mysql -I "%qtBuildMySqlIncludePath%" -L "%qtBuildMySqlLibPath%" MYSQL_LIBS="-lmysqlclientMTd -lAdvapi32 -lUser32 -lCrypt32 -lGdi32" -ssl -openssl -openssl-linked -I "%qtBuildOpenSSLIncludePath%" -L "%qtBuildOpenSSLLibPath%" OPENSSL_LIBS="-llibcryptoMTd -llibsslMTd -lUser32 -lAdvapi32 -lGdi32 -lCrypt32 -lWs2_32" -prefix "%qtInstallationPath%"
      

      It creates the trace file and breaks the Qt compilation process with the following error: ERROR: Unknown command line option '-d'.:

      Short output:

      + cd qtbase
      + C:\QtBuild\qt-everywhere-src-5.15.6\qtbase\configure.bat -top-level -verbose -d -d -d  -debug -static -static-runtime -confirm-license -mp -opensource -nomake examples -no-ltcg -sql-mysql -I "C:\MySQL\mysql-5.7.39-win32\debug\include" -L "C:\MySQL\mysql-5.7.39-win32\debug\lib" MYSQL_LIBS="-lmysqlclientMTd -lAdvapi32 -lUser32 -lCrypt32 -lGdi32" -ssl -openssl -openssl-linked -I "C:\OpenSSL\openssl-1.1.1q\static\x86\debug\include" -L "C:\OpenSSL\openssl-1.1.1q\static\x86\debug\lib" OPENSSL_LIBS="-llibcryptoMTd -llibsslMTd -lUser32 -lAdvapi32 -lGdi32 -lCrypt32 -lWs2_32" -prefix "C:\QtStatic\5.15.6\msvc2019"
      Bootstrapping qmake ...
      
      jom 1.1.3 - empower your cores
      
      	cl -c -Fo./ -Fdqmake.pdb  -W2 -nologo -O2  /MP /wd4577   -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase\qmake -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase\qmake\library -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase\qmake\generators -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase\qmake\generators\unix -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase\qmake\generators\win32 -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase\qmake\generators\mac  -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase/src/3rdparty/tinycbor/src  -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase/include -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase/include\QtCore -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase/include\QtCore\5.15.6 -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase/include\QtCore\5.15.6\QtCore  -I..\src\corelib\global  -IC:\QtBuild\qt-everywhere-src-5.15.6\qtbase\mkspecs\win32-msvc   -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS  -DQT_VERSION_STR=\"5.15.6\" -DQT_VERSION_MAJOR=5 -DQT_VERSION_MINOR=15 -DQT_VERSION_PATCH=6  -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DPROEVALUATOR_FULL  -DQT_NO_FOREACH -DUNICODE -D_ENABLE_EXTENDED_ALIGNED_STORAGE -c -Yc -Fpqmake_pch.pch -TP C:\QtBuild\qt-everywhere-src-5.15.6\qtbase\qmake\qmake_pch.h
      qmake_pch.h
      ....
      	link  /OUT:..\bin\qmake.exe project.obj main.obj ioutils.obj proitems.obj qmakevfs.obj  qmakeglobals.obj qmakeparser.obj qmakeevaluator.obj qmakebuiltins.obj  makefile.obj unixmake.obj unixmake2.obj mingw_make.obj  option.obj winmakefile.obj projectgenerator.obj property.obj meta.obj  makefiledeps.obj metamakefile.obj xmloutput.obj  msvc_nmake.obj msvc_vcproj.obj msvc_vcxproj.obj  msvc_objectmodel.obj msbuild_objectmodel.obj registry.obj qbitarray.obj  qbuffer.obj  qcryptographichash.obj  qfilesystementry.obj  qfilesystemengine.obj  qfilesystemengine_win.obj  qfilesystemiterator_win.obj  qfsfileengine.obj  qfsfileengine_iterator.obj  qarraydata.obj  qbytearray.obj  qbytearraylist.obj  qvsnprintf.obj  qbytearraymatcher.obj  qcalendar.obj  qdatetime.obj  qdir.obj  qdiriterator.obj  qfiledevice.obj  qfile.obj  qtemporaryfile.obj  qabstractfileengine.obj  qfsfileengine_win.obj  qsystemlibrary.obj  qfileinfo.obj  qendian.obj  qglobal.obj  qgregoriancalendar.obj  qhash.obj  qiodevice.obj  qringbuffer.obj  qdebug.obj  qlist.obj  qlocale.obj  qlocale_tools.obj  qlocale_win.obj  qversionnumber.obj  qmalloc.obj  qmap.obj  qoperatingsystemversion.obj  qoperatingsystemversion_win.obj  qregexp.obj  qromancalendar.obj  qutfcodec.obj  qstring.obj  qstringlist.obj  qstringbuilder.obj  qsystemerror.obj  qtextstream.obj  qdatastream.obj  quuid.obj  qrandom.obj  qsettings.obj  qvariant.obj  qsettings_win.obj  qmetatype.obj  qxmlstream.obj  qxmlutils.obj  qnumeric.obj  qlogging.obj  qcborstreamwriter.obj  qcborvalue.obj  qjsoncbor.obj  qjsondocument.obj  qjsonparser.obj  qjsonarray.obj  qjsonobject.obj  qjsonvalue.obj qlibraryinfo.obj qmake_pch.obj ole32.lib advapi32.lib shell32.lib netapi32.lib
      Microsoft (R) Incremental Linker Version 14.29.30146.0
      Copyright (C) Microsoft Corporation.  All rights reserved.
      
      Info: creating super cache file C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\.qmake.super
      Info: creating cache file C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\.qmake.cache
      ERROR: Unknown command line option '-d'.
      

      Any ideas what causes such issue? What trace command should be correct for qmake? Thank you.

      J Offline
      J Offline
      JonB
      wrote on 18 Sept 2022, 12:19 last edited by
      #2

      @Cobra91151
      I do not use this, but are you sure that error message is coming from qmake? You are passing -d -d -d to configure.bat, what makes you think that is how to pass on to qmake, aren't the rest of the options arguments to configure not to qmake?

      1 Reply Last reply
      0
      • C Offline
        C Offline
        Cobra91151
        wrote on 18 Sept 2022, 12:29 last edited by Cobra91151
        #3

        @JonB

        Hello!

        When compiling Qt 5.15.6, I got the following error:

        Copyright (c) Microsoft Corporation. All rights reserved.
        Processing C:\QtBuild\qt-everywhere-src-5.15.6\qtactiveqt\tools\testcon\testcon.idl
        testcon.idl
        Processing C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\um\ocidl.idl
        ocidl.idl
        Processing C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\um\oleidl.idl
        oleidl.idl
        Processing C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\um\objidl.idl
        objidl.idl
        Processing C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\um\unknwn.idl
        unknwn.idl
        Processing C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\shared\wtypes.idl
        wtypes.idl
        Processing C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\shared\wtypesbase.idl
        wtypesbase.idl
        Processing C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\shared\basetsd.h
        basetsd.h
        Processing C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\shared\guiddef.h
        guiddef.h
        Processing C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\um\oaidl.idl
        oaidl.idl
        Processing C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\um\servprov.idl
        servprov.idl
        Processing C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\um\urlmon.idl
        urlmon.idl
        Processing C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\um\msxml.idl
        msxml.idl
        Processing C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\um\oaidl.acf
        oaidl.acf
        Processing C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\um\ocidl.acf
        ocidl.acf
                1 file(s) moved.
        jom: C:\QtBuild\qt-everywhere-src-5.15.6\qtdeclarative\src\qml\Makefile.Debug [.generated\debug\RegExpJitTables.h] Error 1
        jom: C:\QtBuild\qt-everywhere-src-5.15.6\qtdeclarative\src\qml\Makefile [debug] Error 2
        jom: C:\QtBuild\qt-everywhere-src-5.15.6\qtdeclarative\src\Makefile [sub-qml-make_first-ordered] Error 2
        jom: C:\QtBuild\qt-everywhere-src-5.15.6\qtdeclarative\Makefile [sub-src-make_first] Error 2
        jom: C:\QtBuild\qt-everywhere-src-5.15.6\Makefile [module-qtdeclarative-make_first] Error 2
        

        So, how to get the trace ouput for this error?

        1 Reply Last reply
        0
        • C Offline
          C Offline
          Cobra91151
          wrote on 18 Sept 2022, 14:15 last edited by
          #4

          @JonB

          The configure has an option called: -trace "yes".

          -trace [backend] ..... Enable instrumentation with tracepoints.
                                 Currently supported backends are 'etw' (Windows) and
                                 'lttng' (Linux), or 'yes' for auto-detection. [no]
          

          I have added it, but I got another issue:

          Creating library ..\..\..\..\lib\libEGLd.lib and object ..\..\..\..\lib\libEGLd.exp
               copy /y ..\..\..\..\lib\libEGLd.dll ..\..\..\..\bin
               1 file(s) copied.
          jom: C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\qtbase\src\Makefile [sub-corelib-make_first] Error 2
          jom: C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\qtbase\Makefile [sub-src-make_first] Error 2
          jom: C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\Makefile [module-qtbase-make_first] Error 2
          

          And no output is available or trace file exists.
          I think the only way to detect this issue is to use: nmake instead of jom, but nmake will take a lot of time to compile.

          1 Reply Last reply
          0
          • C Offline
            C Offline
            Christian Ehrlicher
            Lifetime Qt Champion
            wrote on 18 Sept 2022, 14:16 last edited by
            #5

            Call nmake to see the actual error (or jom -j1 which is basically the same).

            Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
            Visit the Qt Academy at https://academy.qt.io/catalog

            C 2 Replies Last reply 18 Sept 2022, 14:19
            1
            • C Christian Ehrlicher
              18 Sept 2022, 14:16

              Call nmake to see the actual error (or jom -j1 which is basically the same).

              C Offline
              C Offline
              Cobra91151
              wrote on 18 Sept 2022, 14:19 last edited by
              #6

              @Christian-Ehrlicher

              Ok. I will try it. Thank you.

              1 Reply Last reply
              0
              • C Christian Ehrlicher
                18 Sept 2022, 14:16

                Call nmake to see the actual error (or jom -j1 which is basically the same).

                C Offline
                C Offline
                Cobra91151
                wrote on 18 Sept 2022, 15:06 last edited by Cobra91151
                #7

                @Christian-Ehrlicher

                So, I have run: jom -j1, it leads to this issue:

                C:\QtBuild\qt-everywhere-src-5.15.6\qtbase\src\corelib\global\qlogging.cpp(1683): error C2589: '(': illegal token on right side of '::'
                C:\QtBuild\qt-everywhere-src-5.15.6\qtbase\src\corelib\global\qlogging.cpp(1683): error C2062: type 'unknown-type' unexpected
                C:\QtBuild\qt-everywhere-src-5.15.6\qtbase\src\corelib\global\qlogging.cpp(1683): error C2059: syntax error: ')'
                jom: C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\qtbase\src\corelib\Makefile.Debug [.obj\debug\qendian.obj] Error 2
                jom: C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\qtbase\src\corelib\Makefile [debug] Error 2
                jom: C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\qtbase\src\Makefile [sub-corelib-make_first] Error 2
                jom: C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\qtbase\Makefile [sub-src-make_first] Error 2
                jom: C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\Makefile [module-qtbase-make_first] Error 2
                

                Source file:

                qlogging.cpp(1683):

                static void win_outputDebugString_helper(QStringView message)
                {
                    const int maxOutputStringLength = 32766;
                    static QBasicMutex m;
                    auto locker = qt_unique_lock(m);
                    // fast path: Avoid string copies if one output is enough
                    if (message.length() <= maxOutputStringLength) {
                        OutputDebugString(reinterpret_cast<const wchar_t *>(message.utf16()));
                    } else {
                        wchar_t *messagePart = new wchar_t[maxOutputStringLength + 1];
                        for (int i = 0; i < message.length(); i += maxOutputStringLength ) {
                            const int length = std::min(message.length() - i, maxOutputStringLength );
                            const int len = message.mid(i, length).toWCharArray(messagePart);
                            Q_ASSERT(len == length);
                            messagePart[len] = 0;
                            OutputDebugString(messagePart);
                        }
                        delete[] messagePart;
                    }
                }
                

                So, for some reason this line (1683) leads to an error: const int length = std::min(message.length() - i, maxOutputStringLength );?
                I use x86 Native Tools Command Prompt for VS 2019 to build Qt 5.15.6.
                It seems some include is missing, so it could not find this std function. Any ideas why std::min could lead to this error? Thanks.

                C 1 Reply Last reply 18 Sept 2022, 15:14
                0
                • C Cobra91151
                  18 Sept 2022, 15:06

                  @Christian-Ehrlicher

                  So, I have run: jom -j1, it leads to this issue:

                  C:\QtBuild\qt-everywhere-src-5.15.6\qtbase\src\corelib\global\qlogging.cpp(1683): error C2589: '(': illegal token on right side of '::'
                  C:\QtBuild\qt-everywhere-src-5.15.6\qtbase\src\corelib\global\qlogging.cpp(1683): error C2062: type 'unknown-type' unexpected
                  C:\QtBuild\qt-everywhere-src-5.15.6\qtbase\src\corelib\global\qlogging.cpp(1683): error C2059: syntax error: ')'
                  jom: C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\qtbase\src\corelib\Makefile.Debug [.obj\debug\qendian.obj] Error 2
                  jom: C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\qtbase\src\corelib\Makefile [debug] Error 2
                  jom: C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\qtbase\src\Makefile [sub-corelib-make_first] Error 2
                  jom: C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\qtbase\Makefile [sub-src-make_first] Error 2
                  jom: C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\Makefile [module-qtbase-make_first] Error 2
                  

                  Source file:

                  qlogging.cpp(1683):

                  static void win_outputDebugString_helper(QStringView message)
                  {
                      const int maxOutputStringLength = 32766;
                      static QBasicMutex m;
                      auto locker = qt_unique_lock(m);
                      // fast path: Avoid string copies if one output is enough
                      if (message.length() <= maxOutputStringLength) {
                          OutputDebugString(reinterpret_cast<const wchar_t *>(message.utf16()));
                      } else {
                          wchar_t *messagePart = new wchar_t[maxOutputStringLength + 1];
                          for (int i = 0; i < message.length(); i += maxOutputStringLength ) {
                              const int length = std::min(message.length() - i, maxOutputStringLength );
                              const int len = message.mid(i, length).toWCharArray(messagePart);
                              Q_ASSERT(len == length);
                              messagePart[len] = 0;
                              OutputDebugString(messagePart);
                          }
                          delete[] messagePart;
                      }
                  }
                  

                  So, for some reason this line (1683) leads to an error: const int length = std::min(message.length() - i, maxOutputStringLength );?
                  I use x86 Native Tools Command Prompt for VS 2019 to build Qt 5.15.6.
                  It seems some include is missing, so it could not find this std function. Any ideas why std::min could lead to this error? Thanks.

                  C Offline
                  C Offline
                  Christian Ehrlicher
                  Lifetime Qt Champion
                  wrote on 18 Sept 2022, 15:14 last edited by
                  #8

                  @Cobra91151 said in QMake trace issue:

                  Any ideas why std::min could lead to this error? Thanks.

                  Yes because of stupid MSVC defines

                  try to add

                  #undef min
                  #undef max
                  

                  after the #include statements.
                  But I wonder why NOMINMAX is not defined when you compile with msvc.

                  Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                  Visit the Qt Academy at https://academy.qt.io/catalog

                  C 2 Replies Last reply 18 Sept 2022, 15:35
                  0
                  • C Christian Ehrlicher
                    18 Sept 2022, 15:14

                    @Cobra91151 said in QMake trace issue:

                    Any ideas why std::min could lead to this error? Thanks.

                    Yes because of stupid MSVC defines

                    try to add

                    #undef min
                    #undef max
                    

                    after the #include statements.
                    But I wonder why NOMINMAX is not defined when you compile with msvc.

                    C Offline
                    C Offline
                    Cobra91151
                    wrote on 18 Sept 2022, 15:35 last edited by Cobra91151
                    #9

                    @Christian-Ehrlicher

                    Your solution with undef:

                    #undef min
                    #undef max
                    

                    will work 100%. I tested a simple project using VS 2019. Also, I tried to define the #define NOMINMAX in this test project and it does nothing. Additionally, I clicked go to definition for this define and it lead me to this:

                    Windows.h file:

                    #if defined(RC_INVOKED)
                    /* Turn off a bunch of stuff to ensure that RC files compile OK. */
                    #define NOATOM
                    #define NOGDI
                    #define NOGDICAPMASKS
                    #define NOMETAFILE
                    #define NOMINMAX
                    #define NOMSG
                    #define NOOPENFILE
                    #define NORASTEROPS
                    #define NOSCROLL
                    #define NOSOUND
                    #define NOSYSMETRICS
                    #define NOTEXTMETRIC
                    #define NOWH
                    #define NOCOMM
                    #define NOKANJI
                    #define NOCRYPT
                    #define NOMCX
                    #endif
                    

                    So, it seems that #define NOMINMAX will not work until RC_INVOKED is defined. I will try again to build Qt 5.15.6. Thanks.

                    1 Reply Last reply
                    0
                    • C Christian Ehrlicher
                      18 Sept 2022, 15:14

                      @Cobra91151 said in QMake trace issue:

                      Any ideas why std::min could lead to this error? Thanks.

                      Yes because of stupid MSVC defines

                      try to add

                      #undef min
                      #undef max
                      

                      after the #include statements.
                      But I wonder why NOMINMAX is not defined when you compile with msvc.

                      C Offline
                      C Offline
                      Cobra91151
                      wrote on 18 Sept 2022, 17:03 last edited by
                      #10

                      @Christian-Ehrlicher

                      It's strange, I got a lot of errors:

                      C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\shared\TraceLoggingProvider.h(3665): error C2338: The type is not supported by TraceLoggingValue. (compiling source file C:\QtBuild\qt-everywhere-src-5.15.6\qtbase\src\gui\image\qimagereader.cpp)
                      C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\shared\TraceLoggingProvider.h(3669): note: see reference to class template instantiation '_tlgTypeMapBase<QSize>' being compiled (compiling source file C:\QtBuild\qt-everywhere-src-5.15.6\qtbase\src\gui\image\qimagereader.cpp)
                      C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\qtbase\src\gui\.tracegen\debug\qtgui_tracepoints_p.h(168): note: see reference to class template instantiation '_tlgTypeMap<const QSize &>' being compiled (compiling source file C:\QtBuild\qt-everywhere-src-5.15.6\qtbase\src\gui\image\qimagereader.cpp)
                      C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\qtbase\src\gui\.tracegen\debug\qtgui_tracepoints_p.h(168): error C2039: '_tlgTypeType0': is not a member of '_tlgTypeMap<const QSize &>' (compiling source file C:\QtBuild\qt-everywhere-src-5.15.6\qtbase\src\gui\image\qimagereader.cpp)
                      .........
                      C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\qtbase\src\gui\.tracegen\debug\qtgui_tracepoints_p.h(435): error C2078: too many initializers (compiling source file C:\QtBuild\qt-everywhere-src-5.15.6\qtbase\src\gui\image\qpixmap.cpp)
                      jom: C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\qtbase\src\gui\Makefile.Debug [.obj\debug\qbitmap.obj] Error 2
                      jom: C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\qtbase\src\gui\Makefile [debug] Error 2
                      jom: C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\qtbase\src\Makefile [sub-gui-make_first] Error 2
                      jom: C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\qtbase\Makefile [sub-src-make_first] Error 2
                      jom: C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild\Makefile [module-qtbase-make_first] Error 2
                      
                      C:\QtBuild\qt-everywhere-src-5.15.6\qtBuild>
                      

                      Any suggestions? Thanks.

                      1 Reply Last reply
                      0
                      • C Offline
                        C Offline
                        Christian Ehrlicher
                        Lifetime Qt Champion
                        wrote on 18 Sept 2022, 17:21 last edited by
                        #11

                        What msvc version do you use? 2022? Not sure if 5.15.6 already has all patches for this compiler though.

                        Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                        Visit the Qt Academy at https://academy.qt.io/catalog

                        C 1 Reply Last reply 18 Sept 2022, 18:18
                        0
                        • C Christian Ehrlicher
                          18 Sept 2022, 17:21

                          What msvc version do you use? 2022? Not sure if 5.15.6 already has all patches for this compiler though.

                          C Offline
                          C Offline
                          Cobra91151
                          wrote on 18 Sept 2022, 18:18 last edited by Cobra91151
                          #12

                          @Christian-Ehrlicher

                          No. I use VS 2019 compiler - x86 Native Tools Command Prompt for VS 2019. It uses Windows Kits\10\include\10.0.22000.0. Maybe the problem is with the latest kit?

                          Also, I have removed the -trace "yes" from configure command, I think it could lead to such errors.

                          1 Reply Last reply
                          0
                          • C Offline
                            C Offline
                            Cobra91151
                            wrote on 18 Sept 2022, 20:40 last edited by Cobra91151
                            #13

                            Ok. So, -trace "yes" command leads to this error. By removing this command, the compilation continues until I got the mismatch between the LLVM libs.
                            I have downloaded them from https://github.com/llvm/llvm-project/releases/tag/llvmorg-14.0.6 for LLVM-14.0.6-win32.exe & LLVM-14.0.6-win64.exe binaries, installed them. Set LLVM_INSTALL_DIR to the Win32 libs, since I build Qt for x86 Native Tools Command Prompt for VS 2019.

                            By the way, this error: jom: C:\QtBuild\qt-everywhere-src-5.15.6\qtdeclarative\src\qml\Makefile.Debug [.generated\debug\RegExpJitTables.h] Error 1 occurs due to the space in the path to Python: C:\Program Files\Python. I have installed the Python without spaces in the path, for example: C:\Python to fix this error.

                            Trying again...

                            1 Reply Last reply
                            0
                            • C Offline
                              C Offline
                              Cobra91151
                              wrote on 23 Sept 2022, 16:58 last edited by Cobra91151
                              #14

                              Hello!

                              I have successfully built the Qt 5.15.6 for VS 2019 / 2022 for x86/x64 architecture (static/shared). The issue is resolved.

                              1 Reply Last reply
                              0

                              1/14

                              18 Sept 2022, 12:01

                              • Login

                              • Login or register to search.
                              1 out of 14
                              • First post
                                1/14
                                Last post
                              0
                              • Categories
                              • Recent
                              • Tags
                              • Popular
                              • Users
                              • Groups
                              • Search
                              • Get Qt Extensions
                              • Unsolved