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

wrong linker qt6core lib in case on debug_and_release builds

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • P1: Critical
    • None
    • 6.9
    • Build System: CMake
    • None

    Description

      When doing prefix module build for -debug-and-relase -force-debug-info

      linker in qtdeclartive failes with (when building debug)

      C:\PROGRA~2\MICROS~2\2022\BUILDT~1\VC\Tools\MSVC\1442~1.344\bin\Hostx64\x64\link.exe /nologo src\qmlxmllistmodel\CMakeFiles\QmlXmlListModel.dir\Debug\QmlXmlListModel_autogen\mocs_compilation_Debug.cpp.obj src\qmlxmllistmodel\CMakeFiles\QmlXmlListModel.dir\Debug\Debug\QmlXmlListModel_resource.rc.res src\qmlxmllistmodel\CMakeFiles\QmlXmlListModel.dir\Debug\qqmlxmllistmodel.cpp.obj src\qmlxmllistmodel\CMakeFiles\QmlXmlListModel.dir\Debug\qmlxmllistmodel_qmltyperegistrations.cpp.obj src\qmlxmllistmodel\CMakeFiles\QmlXmlListModel.dir\Debug\.qt\rcc\qrc_qmake_QtQml_XmlListModel.cpp.obj /out:bin\Qt6QmlXmlListModeld.dll /implib:lib\Qt6QmlXmlListModeld.lib /pdb:bin\Qt6QmlXmlListModeld.pdb /dll /version:6.10 /machine:x64 /debug -DYNAMICBASE -NXCOMPAT -LARGEADDRESSAWARE -CETCOMPAT lib\Qt6QmlModelsd.lib lib\Qt6Qmld.lib C:\opt\qt\6.10.msvc22.debug_and_release\lib\Qt6Network.lib C:\opt\qt\6.10.msvc22.debug_and_release\lib\Qt6Core.lib mpr.lib userenv.lib ws2_32.lib shell32.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST:EMBED,ID=2
      x64 /debug -DYNAMICBASE -NXCOMPAT -LARGEADDRESSAWARE -CETCOMPAT lib\Qt6QmlModelsd.lib lib\Qt6Qmld.lib C:\opt\qt\6.10.msvc22.debug_and_release\lib\Qt6Network.lib C:\opt\qt\6.10.msvc22.debug_and_release\lib\Qt6Core.lib mpr.lib userenv.lib ws2_32.lib shell32.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST:EMBED,ID=2   Creating library lib\Qt6QmlXmlListModeld.lib and object lib\Qt6QmlXmlListModeld.exp
      qqmlxmllistmodel.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl QtPrivate::ResultIteratorBase::~ResultIteratorBase(void)" (__imp_??1ResultIteratorBase@QtPrivate@@QEAA@XZ) referenced in function "public: struct QQmlXmlListModelQueryResult const & __cdecl QFutureInterface<struct QQmlXmlListModelQueryResult>::resultReference(int)const " (?resultReference@?$QFutureInterface@UQQmlXmlListModelQueryResult@@@@QEBAAEBUQQmlXmlListModelQue
      

      Despite msvc22 doing some mumbo jumbo with requiring extranal symbol for implicit destructor in ResultIteratorBase , it sill fine as long as you link to correct debug libs. However above link command have

      C:\opt\qt\6.10.msvc22.debug_and_release\lib\Qt6Core.lib
      

      switching to

      C:\dev\build\6.10\qtbased.msvc22.debug_and_release\lib\Qt6Cored.lib
      

      Fixes the linker issue. Note besides liking with wrong qt6core.lib , the correct one qt6cored.lib is in the build dir of qtbase and not installed into prefix path, which makes it even more broken.

      Attachments

        Issue Links

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

          Activity

            People

              qtbuildsystem Qt Build System Team
              michal Michal Klocek
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes