Uploaded image for project: 'Qt Creator'
  1. Qt Creator
  2. QTCREATORBUG-28628

Undefined symbols when building Qt Creator 9.0.1 on Windows with ClangCl MSVC frontend

    XMLWordPrintable

Details

    • Bug
    • Resolution: Cannot Reproduce
    • Not Evaluated
    • None
    • Qt Creator 9.0.1
    • Building Qt Creator
    • None
    • Windows

    Description

      I'm trying to build Qt Creator 9.0.1 from source against our build of Qt 6.4.1 from source. On Linux everything works, but on Windows I get undefined symbols. Note that we use ClangCl 15.0.5 as a frontend to MSVC 17.4.0, maybe the problem is ClangCl specific?

      Here is the error:

      [1833/3711] cmd.exe /C "cd . && C:\data\Tools\bin\cmake.exe -E vs_link_dll --intdir=src\plugins\cppeditor\CMakeFiles\CppEditor.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI
      3CF2~1\10\bin\100226~1.0\x64\mt.exe --manifests  -- C:\BDA\ci\LLVM-15.0.5\bin\lld-link.exe  @CMakeFiles\CppEditor.rsp  /out:lib\qtcreator\plugins\CppEditor.dll /implib:lib\qtcreator\plugins\CppEditor.lib /
      pdb:lib\qtcreator\plugins\CppEditor.pdb /dll /version:0.0 /machine:x64    /DEBUG:FULL /debug /INCREMENTAL  C:\data\usr-tmp-C10Sk32c193431933c1505\Debug\qt-creator\src\libs\3rdparty\syntax-highlighting\CMak
      eFiles\QtCreatorPchGui.dir\.\cmake_pch.cxx.obj  && cd ."                                                                                                                                                     
      FAILED: lib/qtcreator/plugins/CppEditor.dll lib/qtcreator/plugins/CppEditor.lib                                                                                                                       
      cmd.exe /C "cd . && C:\data\Tools\bin\cmake.exe -E vs_link_dll --intdir=src\plugins\cppeditor\CMakeFiles\CppEditor.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bi
      n\100226~1.0\x64\mt.exe --manifests  -- C:\BDA\ci\LLVM-15.0.5\bin\lld-link.exe  @CMakeFiles\CppEditor.rsp  /out:lib\qtcreator\plugins\CppEditor.dll /implib:lib\qtcreator\plugins\CppEditor.lib /pdb:lib\qtcr
      eator\plugins\CppEditor.pdb /dll /version:0.0 /machine:x64    /DEBUG:FULL /debug /INCREMENTAL  C:\data\usr-tmp-C10Sk32c193431933c1505\Debug\qt-creator\src\libs\3rdparty\syntax-highlighting\CMakeFiles\QtCre
      atorPchGui.dir\.\cmake_pch.cxx.obj  && cd ."                                                                                                                                                                 
      LINK Pass 1: command "C:\BDA\ci\LLVM-15.0.5\bin\lld-link.exe @CMakeFiles\CppEditor.rsp /out:lib\qtcreator\plugins\CppEditor.dll /implib:lib\qtcreator\plugins\CppEditor.lib /pdb:lib\qtcreator\plugins\CppEdi
      tor.pdb /dll /version:0.0 /machine:x64 /DEBUG:FULL /debug /INCREMENTAL C:\data\usr-tmp-C10Sk32c193431933c1505\Debug\qt-creator\src\libs\3rdparty\syntax-highlighting\CMakeFiles\QtCreatorPchGui.dir\.\cmake_p
      ch.cxx.obj /MANIFEST /MANIFESTFILE:src\plugins\cppeditor\CMakeFiles\CppEditor.dir/intermediate.manifest src\plugins\cppeditor\CMakeFiles\CppEditor.dir/manifest.res" failed (exit code 1) with the following 
      output:                                                                                                                                                                                                      
      lld-link: error: undefined symbol: __declspec(dllimport) public: bool __cdecl CPlusPlus::List<class CPlusPlus::DeclarationAST *>::ListIterator::operator!=(class CPlusPlus::List<class CPlusPlus::Declaration
      AST *>::ListIterator const &)                     
      >>> referenced by C:\cygwin64\home\memmenlauer\BDA\Src\qt-creator\src\plugins\cppeditor\insertionpointlocator.cpp:331
      >>>               src\plugins\cppeditor\CMakeFiles\CppEditor.dir\insertionpointlocator.cpp.obj:(public: class CppEditor::InsertionLocation __cdecl CppEditor::InsertionPointLocator::constructorDeclarationIn
      Class(class CPlusPlus::TranslationUnit const *, class CPlusPlus::ClassSpecifierAST const *, enum CppEditor::InsertionPointLocator::AccessSpec, int) const)                                             
                                                                                                                                                                                                            
      lld-link: error: undefined symbol: __declspec(dllimport) public: class CPlusPlus::DeclarationAST * __cdecl CPlusPlus::List<class CPlusPlus::DeclarationAST *>::ListIterator::operator*(void)          
      >>> referenced by C:\cygwin64\home\memmenlauer\BDA\Src\qt-creator\src\plugins\cppeditor\insertionpointlocator.cpp:331
      >>>               src\plugins\cppeditor\CMakeFiles\CppEditor.dir\insertionpointlocator.cpp.obj:(public: class CppEditor::InsertionLocation __cdecl CppEditor::InsertionPointLocator::constructorDeclarationIn
      Class(class CPlusPlus::TranslationUnit const *, class CPlusPlus::ClassSpecifierAST const *, enum CppEditor::InsertionPointLocator::AccessSpec, int) const)                                             
                                                                                                                                                                                                            
      lld-link: error: undefined symbol: __declspec(dllimport) public: bool __cdecl CPlusPlus::List<class CPlusPlus::DeclaratorAST *>::ListIterator::operator!=(class CPlusPlus::List<class CPlusPlus::DeclaratorAS
      T *>::ListIterator const &)                                                                                                                                                                           
      >>> referenced by C:\cygwin64\home\memmenlauer\BDA\Src\qt-creator\src\plugins\cppeditor\insertionpointlocator.cpp:339                                                                                 
      >>>               src\plugins\cppeditor\CMakeFiles\CppEditor.dir\insertionpointlocator.cpp.obj:(public: class CppEditor::InsertionLocation __cdecl CppEditor::InsertionPointLocator::constructorDeclarationIn
      Class(class CPlusPlus::TranslationUnit const *, class CPlusPlus::ClassSpecifierAST const *, enum CppEditor::InsertionPointLocator::AccessSpec, int) const)                                             
                                                                                                                                                                                                            
      lld-link: error: undefined symbol: __declspec(dllimport) public: class CPlusPlus::DeclaratorAST * __cdecl CPlusPlus::List<class CPlusPlus::DeclaratorAST *>::ListIterator::operator*(void)
      >>> referenced by C:\cygwin64\home\memmenlauer\BDA\Src\qt-creator\src\plugins\cppeditor\insertionpointlocator.cpp:339                                                                                        
      >>>               src\plugins\cppeditor\CMakeFiles\CppEditor.dir\insertionpointlocator.cpp.obj:(public: class CppEditor::InsertionLocation __cdecl CppEditor::InsertionPointLocator::constructorDeclarationIn
      Class(class CPlusPlus::TranslationUnit const *, class CPlusPlus::ClassSpecifierAST const *, enum CppEditor::InsertionPointLocator::AccessSpec, int) const)                                                   
      
      lld-link: error: undefined symbol: __declspec(dllimport) public: bool __cdecl CPlusPlus::List<class CPlusPlus::PostfixDeclaratorAST *>::ListIterator::operator!=(class CPlusPlus::List<class CPlusPlus::Postf
      ixDeclaratorAST *>::ListIterator const &)           
      >>> referenced by C:\cygwin64\home\memmenlauer\BDA\Src\qt-creator\src\plugins\cppeditor\insertionpointlocator.cpp:340                                                                                        
      >>>               src\plugins\cppeditor\CMakeFiles\CppEditor.dir\insertionpointlocator.cpp.obj:(public: class CppEditor::InsertionLocation __cdecl CppEditor::InsertionPointLocator::constructorDeclarationIn
      Class(class CPlusPlus::TranslationUnit const *, class CPlusPlus::ClassSpecifierAST const *, enum CppEditor::InsertionPointLocator::AccessSpec, int) const)                                                   
      
      lld-link: error: undefined symbol: __declspec(dllimport) public: class CPlusPlus::PostfixDeclaratorAST * __cdecl CPlusPlus::List<class CPlusPlus::PostfixDeclaratorAST *>::ListIterator::operator*(void)
      >>> referenced by C:\cygwin64\home\memmenlauer\BDA\Src\qt-creator\src\plugins\cppeditor\insertionpointlocator.cpp:340                                                                                        
      >>>               src\plugins\cppeditor\CMakeFiles\CppEditor.dir\insertionpointlocator.cpp.obj:(public: class CppEditor::InsertionLocation __cdecl CppEditor::InsertionPointLocator::constructorDeclarationIn
      Class(class CPlusPlus::TranslationUnit const *, class CPlusPlus::ClassSpecifierAST const *, enum CppEditor::InsertionPointLocator::AccessSpec, int) const)                                                   
      

      Attachments

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

        Activity

          People

            con Eike Ziller
            emmenlau Mario Emmenlauer
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes