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

QtWebEngine undefined symbols on MSVC when spellchecker disabled

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 5.13.1
    • 5.13.0
    • WebEngine
    • None
    • Microsoft Visual Studio 2017 15.9
    • Windows
    • c51e0d38f63401507c0ce3717df1fa6be66d17ab (qt/qtwebengine-chromium/73-based) fe5422e6630f8fbc8b72ca82e41ba9f3e863b194 (qt/qtwebengine-chromium/75-based)

    Description

      When I configure QtWebEngine without spellchecker then I get undefined symbols during linking of the dll. The error message is:

      jom: parallel job execution disabled for Makefile.core_module
      	D:\artifacts-MSVC-Generic-7-x64-cl19.16.27031.1\Tools\bin\jom.exe -f Makefile.core_module.Debug
      	rc /NOLOGO -D_DEBUG -DUNICODE -D_UNICODE -DWIN32 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -DWIN64 -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_BUILD_WEBENGINECORE_LIB -DQT_BUILDING_QT -D_CRT_SECURE_NO_WARNINGS -D_USE_MATH_DEFINES -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x040800 -DQT_NO_EXCEPTIONS -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_WEBCHANNEL_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_WEBENGINECOREHEADERS_LIB -D_WINDLL -fo .obj\debug\Qt5WebEngineCored_resource.res Qt5WebEngineCored_resource.rc
      	link /NOLOGO /DYNAMICBASE /NXCOMPAT /MACHINE:X64 /DEBUG @D:/tmp/qt5-x64/qtwebengine/src/core/debug/QtWebEngineCore_o.rsp /WX /DEBUG /pdbaltpath:%_PDB% /MACHINE:X64 /fastfail /FIXED:NO /ignore:4199 /ignore:4221 /NXCOMPAT /DYNAMICBASE /time /verbose:incr /INCREMENTAL:NO /SUBSYSTEM:CONSOLE,5.02 /NOLOGO /DYNAMICBASE /NXCOMPAT /MACHINE:X64 /DEBUG /DEBUG /DLL /SUBSYSTEM:WINDOWS /DELAYLOAD:cfgmgr32.dll /DELAYLOAD:powrprof.dll /DELAYLOAD:setupapi.dll /NATVIS:D:/tmp/qt5/qtwebengine/src/3rdparty/chromium/tools/win/DebugVisualizers/chrome.natvis /DELAYLOAD:BluetoothApis.dll /DELAYLOAD:Bthprops.cpl /DELAYLOAD:setupapi.dll /DELAYLOAD:mf.dll /DELAYLOAD:mfplat.dll /DELAYLOAD:mfreadwrite.dll /NATVIS:D:/tmp/qt5/qtwebengine/src/3rdparty/chromium/tools/win/DebugVisualizers/webkit.natvis /OPT:REF @D:/tmp/qt5-x64/qtwebengine/src/core/api/debug\qtwebenginecoreapid.lib.objects /DEBUG /DLL /SUBSYSTEM:WINDOWS /VERSION:5.13 /MANIFEST:embed /OUT:..\..\lib\Qt5WebEngineCored.dll @C:\Users\bdaci01\AppData\Local\Temp\Qt5WebEngineCored.dll.244.47.jom
         Creating library ..\..\lib\Qt5WebEngineCored.lib and object ..\..\lib\Qt5WebEngineCored.exp
      LibDef: Total time = 0.313s
      spellcheck.mojom.obj : error LNK2019: unresolved external symbol "public: __cdecl SpellCheckResult::SpellCheckResult(enum SpellCheckResult::Decoration,int,int,class std::vector<class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >,class std::allocator<class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > > > const &)" (??0SpellCheckResult@@QEAA@W4Decoration@0@HHAEBV?$vector@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@V?$allocator@V?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@2@@std@@@Z) referenced in function "public: static void __cdecl std::_Default_allocator_traits<class std::allocator<struct SpellCheckResult> >::construct<struct SpellCheckResult>(class std::allocator<struct SpellCheckResult> &,struct SpellCheckResult * const)" (??$construct@USpellCheckResult@@$$V@?$_Default_allocator_traits@V?$allocator@USpellCheckResult@@@std@@@std@@SAXAEAV?$allocator@USpellCheckResult@@@1@QEAUSpellCheckResult@@@Z)
      spellcheck.mojom.obj : error LNK2019: unresolved external symbol "public: __cdecl SpellCheckResult::~SpellCheckResult(void)" (??1SpellCheckResult@@QEAA@XZ) referenced in function "public: void * __cdecl SpellCheckResult::`scalar deleting destructor'(unsigned int)" (??_GSpellCheckResult@@QEAAPEAXI@Z)
      spellcheck.mojom-test-utils.obj : error LNK2001: unresolved external symbol "public: __cdecl SpellCheckResult::~SpellCheckResult(void)" (??1SpellCheckResult@@QEAA@XZ)
      spellcheck.mojom.obj : error LNK2019: unresolved external symbol "public: static enum spellcheck::mojom::Decoration __cdecl mojo::EnumTraits<enum spellcheck::mojom::Decoration,enum SpellCheckResult::Decoration>::ToMojom(enum SpellCheckResult::Decoration)" (?ToMojom@?$EnumTraits@W4Decoration@mojom@spellcheck@@W41SpellCheckResult@@@mojo@@SA?AW4Decoration@mojom@spellcheck@@W43SpellCheckResult@@@Z) referenced in function "public: static void __cdecl mojo::internal::Serializer<enum spellcheck::mojom::Decoration,enum SpellCheckResult::Decoration>::Serialize(enum SpellCheckResult::Decoration,int *)" (?Serialize@?$Serializer@W4Decoration@mojom@spellcheck@@W41SpellCheckResult@@@internal@mojo@@SAXW4Decoration@SpellCheckResult@@PEAH@Z)
      spellcheck.mojom.obj : error LNK2019: unresolved external symbol "public: static bool __cdecl mojo::EnumTraits<enum spellcheck::mojom::Decoration,enum SpellCheckResult::Decoration>::FromMojom(enum spellcheck::mojom::Decoration,enum SpellCheckResult::Decoration *)" (?FromMojom@?$EnumTraits@W4Decoration@mojom@spellcheck@@W41SpellCheckResult@@@mojo@@SA_NW4Decoration@mojom@spellcheck@@PEAW43SpellCheckResult@@@Z) referenced in function "public: static bool __cdecl mojo::internal::Serializer<enum spellcheck::mojom::Decoration,enum SpellCheckResult::Decoration>::Deserialize(int,enum SpellCheckResult::Decoration *)" (?Deserialize@?$Serializer@W4Decoration@mojom@spellcheck@@W41SpellCheckResult@@@internal@mojo@@SA_NHPEAW4Decoration@SpellCheckResult@@@Z)
      spellcheck.mojom.obj : error LNK2019: unresolved external symbol "public: static bool __cdecl mojo::StructTraits<class spellcheck::mojom::SpellCheckResultDataView,struct SpellCheckResult>::Read(class spellcheck::mojom::SpellCheckResultDataView,struct SpellCheckResult *)" (?Read@?$StructTraits@VSpellCheckResultDataView@mojom@spellcheck@@USpellCheckResult@@@mojo@@SA_NVSpellCheckResultDataView@mojom@spellcheck@@PEAUSpellCheckResult@@@Z) referenced in function "public: static bool __cdecl mojo::internal::Serializer<class spellcheck::mojom::SpellCheckResultDataView,struct SpellCheckResult>::Deserialize(class spellcheck::mojom::internal::SpellCheckResult_Data *,struct SpellCheckResult *,class mojo::internal::SerializationContext *)" (?Deserialize@?$Serializer@VSpellCheckResultDataView@mojom@spellcheck@@USpellCheckResult@@@internal@mojo@@SA_NPEAVSpellCheckResult_Data@2mojom@spellcheck@@PEAUSpellCheckResult@@PEAVSerializationContext@23@@Z)
      spellcheck.mojom-test-utils.obj : error LNK2019: unresolved external symbol "public: __cdecl SpellCheckResult::SpellCheckResult(struct SpellCheckResult const &)" (??0SpellCheckResult@@QEAA@AEBU0@@Z) referenced in function "public: static void __cdecl std::_Default_allocator_traits<class std::allocator<struct SpellCheckResult> >::construct<struct SpellCheckResult,struct SpellCheckResult &>(class std::allocator<struct SpellCheckResult> &,struct SpellCheckResult * const,struct SpellCheckResult &)" (??$construct@USpellCheckResult@@AEAU1@@?$_Default_allocator_traits@V?$allocator@USpellCheckResult@@@std@@@std@@SAXAEAV?$allocator@USpellCheckResult@@@1@QEAUSpellCheckResult@@AEAU3@@Z)
      ..\..\lib\Qt5WebEngineCored.dll : fatal error LNK1120: 6 unresolved externals
      
      

       I disable iterator debugging in QFLAGS (see below) and in qtwebengine/src/core/config/common.pri:

      gn_args += enable_iterator_debugging=false
      

      My configure flags for Qt are:

      configure.bat" -v \
          -prefix "D:/artifacts-MSVC-Generic-7-x64-cl19.16.27031.1/Debug" \
          QMAKE_CFLAGS+="${CFLAGS} /MDd /Zi /D_ITERATOR_DEBUG_LEVEL=0 \
              /D_ENABLE_EXTENDED_ALIGNED_STORAGE" \
          QMAKE_CXXFLAGS+="${CXXFLAGS} /MDd /Zi /D_ITERATOR_DEBUG_LEVEL=0 \
              /D_ENABLE_EXTENDED_ALIGNED_STORAGE" \
          QMAKE_LFLAGS+="${LDFLAGS} /MACHINE:X64 /DEBUG" \
          -sse2 -sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 -no-avx -no-avx2 -no-avx512 -debug \
          ZLIB_LIBS="-lzlibd" LIBPNG_LIBS="-llibpng16d" LIBJPEG_LIBS="-ljpeg" \
          OPENSSL_LIBS="-llibeay32 -lssleay32" FREETYPE_LIBS="-lfreetype" \
          -platform win32-msvc2017 -opensource -confirm-license -shared -no-pch -no-dbus \
          -no-iconv -no-pkg-config -icu -nomake examples -nomake tests -no-compile-examples \
          -no-gif -no-pulseaudio -no-alsa -no-cups -no-gstreamer -skip qtactiveqt -skip qtcharts \
          -skip qtconnectivity -skip qtspeech -skip qtdoc -skip qtgamepad -skip qtlocation \
          -skip qtpurchasing -skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus \
          -skip qtserialport -skip qtvirtualkeyboard -skip qtwayland -no-webengine-alsa \
          -no-webengine-icu -no-webengine-ffmpeg -no-webengine-opus -no-webengine-webp \
          -no-webengine-pepper-plugins -no-webengine-printing-and-pdf \
          -no-webengine-proprietary-codecs -no-webengine-pulseaudio \
          -no-webengine-spellchecker -no-webengine-native-spellchecker \
          -no-webengine-webrtc -no-webengine-geolocation -no-webengine-kerberos \
          -webengine-webchannel -webengine-v8-snapshot -skip qtxmlpatterns \
          -no-feature-movie -no-feature-big_codecs -feature-highdpiscaling -no-directfb \
          -no-use-gold-linker -system-zlib -system-libpng -system-libjpeg -system-freetype \
          -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql \
          -no-sql-sqlite2 -no-sql-sqlite -no-sql-tds -no-journald -no-syslog -no-slog2 \
          -opengl desktop -no-ssl -no-openssl -no-securetransport -no-libproxy -no-sctp \
          -c++std c++14
      

      Attachments

        Issue Links

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

          Activity

            People

              allan.jensen Allan Sandfeld Jensen
              emmenlau Mario Emmenlauer
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes