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

WIN64: 'multiple definition of `QM3uPlaylistPlugin' and 'M3uPlaylistPlugin ... already defined in moc_qm3uhandler.obj' errors for static QtMultimedia autotest builds using mingw-w64 and MSVC

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 5.11.2
    • 5.11, 5.12
    • Multimedia
    • None

    Description

      Hello, everyone,

       

      Got errors for builds using mingw-w64:

      mingw32-make[6]: Entering directory 'C:/libQT-5.11-dev/build/qtmultimedia/tests/auto/unit/qmediaplaylist'
      g++ -Wl,-s -mthreads -static -Wl,-subsystem,console -o release\tst_qmediaplaylist.exe .obj/release/tst_qmediaplaylist.o .obj/release/qm3uhandler.o .obj/release/tst_qmediaplaylist_plugin_import.o .obj/release/moc_mockmediaplaylistsourcecontrol.o .obj/release/moc_mockplaylistservice.o .obj/release/moc_qm3uhandler.o  -LC:\libQT-5.11-dev\build\qtmultimedia\plugins\mediaservice C:\libQT-5.11-dev\build\qtmultimedia\plugins\mediaservice\libdsengine.a -lmf -lmfplat -lmfuuid -ld3d9 -ldxva2 -levr -LC:\libQT-5.11-dev\build\qtmultimedia\lib -LC:\libQT-5.11-dev\build\qtbase\lib -LC:\libICU-61.1-dev\GCC64RT\lib -LC:\libOPENSSL-1.1.1-dev\GCC64RT\lib -ldmoguids -lmsdmo -lksuser C:\libQT-5.11-dev\build\qtmultimedia\plugins\mediaservice\libqtmedia_audioengine.a -LC:\libQT-5.11-dev\build\qtmultimedia\plugins\audio C:\libQT-5.11-dev\build\qtmultimedia\plugins\audio\libqtaudio_windows.a -lstrmiids -LC:\libQT-5.11-dev\build\qtmultimedia\plugins\playlistformats C:\libQT-5.11-dev\build\qtmultimedia\plugins\playlistformats\libqtmultimedia_m3u.a -LC:\libQT-5.11-dev\build\qtbase\plugins\platforms C:\libQT-5.11-dev\build\qtbase\plugins\platforms\libqwindows.a -lwinspool -lshlwapi C:\libQT-5.11-dev\build\qtbase\lib\libQt5EventDispatcherSupport.a C:\libQT-5.11-dev\build\qtbase\lib\libQt5FontDatabaseSupport.a C:\libQT-5.11-dev\build\qtbase\lib\libqtfreetype.a C:\libQT-5.11-dev\build\qtbase\lib\libQt5ThemeSupport.a C:\libQT-5.11-dev\build\qtbase\lib\libQt5AccessibilitySupport.a C:\libQT-5.11-dev\build\qtbase\lib\libQt5VulkanSupport.a C:\libQT-5.11-dev\build\qtbase\lib\libQt5WindowsUIAutomationSupport.a -LC:\libQT-5.11-dev\build\qtimageformats\plugins\imageformats C:\libQT-5.11-dev\build\qtimageformats\plugins\imageformats\libqicns.a C:\libQT-5.11-dev\build\qtimageformats\plugins\imageformats\libqtga.a C:\libQT-5.11-dev\build\qtimageformats\plugins\imageformats\libqtiff.a C:\libQT-5.11-dev\build\qtimageformats\plugins\imageformats\libqwbmp.a C:\libQT-5.11-dev\build\qtimageformats\plugins\imageformats\libqwebp.a -LC:\libQT-5.11-dev\build\qtbase\plugins\imageformats C:\libQT-5.11-dev\build\qtbase\plugins\imageformats\libqgif.a C:\libQT-5.11-dev\build\qtbase\plugins\imageformats\libqico.a C:\libQT-5.11-dev\build\qtbase\plugins\imageformats\libqjpeg.a -LC:\libQT-5.11-dev\build\qtbase\plugins\bearer C:\libQT-5.11-dev\build\qtbase\plugins\bearer\libqgenericbearer.a -LC:\libQT-5.11-dev\build\qtbase\plugins\styles C:\libQT-5.11-dev\build\qtbase\plugins\styles\libqwindowsvistastyle.a C:\libQT-5.11-dev\build\qtbase\lib\libQt5Widgets.a -luxtheme -ldwmapi C:\libQT-5.11-dev\build\qtmultimedia\lib\libQt5Multimedia.a C:\libQT-5.11-dev\build\qtbase\lib\libQt5Gui.a -lgdi32 -lcomdlg32 -loleaut32 -limm32 C:\libQT-5.11-dev\build\qtbase\lib\libqtlibpng.a C:\libQT-5.11-dev\build\qtbase\lib\libqtharfbuzz.a C:\libQT-5.11-dev\build\qtbase\lib\libQt5Network.a -ldnsapi -liphlpapi -lcrypt32 C:\libOPENSSL-1.1.1-dev\GCC64RT\lib\libssl.dll.a C:\libOPENSSL-1.1.1-dev\GCC64RT\lib\libcrypto.dll.a C:\libQT-5.11-dev\build\qtbase\lib\libQt5Test.a C:\libQT-5.11-dev\build\qtbase\lib\libQt5Core.a -lmpr -lnetapi32 -luserenv -lversion -lws2_32 -lkernel32 -luser32 -lshell32 -luuid -lole32 -ladvapi32 -lwinmm -lz -lsicuin -lsicuuc -lsicudt C:\libQT-5.11-dev\build\qtbase\lib\libqtpcre2.a
      C:\libQT-5.11-dev\build\qtmultimedia\plugins\playlistformats\libqtmultimedia_m3u.a(moc_qm3uhandler.o):moc_qm3uhandler.cpp:(.text+0x0): multiple definition of `QM3uPlaylistPlugin::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)'
      .obj/release/moc_qm3uhandler.o:moc_qm3uhandler.cpp:(.text+0x0): first defined here
      C:\libQT-5.11-dev\build\qtmultimedia\plugins\playlistformats\libqtmultimedia_m3u.a(moc_qm3uhandler.o):moc_qm3uhandler.cpp:(.text+0x20): multiple definition of `QM3uPlaylistPlugin::metaObject() const'
      .obj/release/moc_qm3uhandler.o:moc_qm3uhandler.cpp:(.text+0x10): first defined here
      C:\libQT-5.11-dev\build\qtmultimedia\plugins\playlistformats\libqtmultimedia_m3u.a(moc_qm3uhandler.o):moc_qm3uhandler.cpp:(.text+0x220): multiple definition of `QM3uPlaylistPlugin::qt_metacast(char const*)'
      .obj/release/moc_qm3uhandler.o:moc_qm3uhandler.cpp:(.text+0x220): first defined here
      C:\libQT-5.11-dev\build\qtmultimedia\plugins\playlistformats\libqtmultimedia_m3u.a(moc_qm3uhandler.o):moc_qm3uhandler.cpp:(.text+0x270): multiple definition of `QM3uPlaylistPlugin::qt_metacall(QMetaObject::Call, int, void**)'
      .obj/release/moc_qm3uhandler.o:moc_qm3uhandler.cpp:(.text+0x270): first defined here
      C:\libQT-5.11-dev\build\qtmultimedia\plugins\playlistformats\libqtmultimedia_m3u.a(moc_qm3uhandler.o):moc_qm3uhandler.cpp:(.rdata+0xa0): multiple definition of `QM3uPlaylistPlugin::staticMetaObject'
      .obj/release/moc_qm3uhandler.o:moc_qm3uhandler.cpp:(.rdata+0xa0): first defined here
      collect2.exe: error: ld returned 1 exit status
      mingw32-make[6]: *** [Makefile.Release:77: release\tst_qmediaplaylist.exe] Error 1
      mingw32-make[6]: Leaving directory 'C:/libQT-5.11-dev/build/qtmultimedia/tests/auto/unit/qmediaplaylist'
      mingw32-make[5]: *** [Makefile:36: release] Error 2
      mingw32-make[5]: Leaving directory 'C:/libQT-5.11-dev/build/qtmultimedia/tests/auto/unit/qmediaplaylist'
      mingw32-make[4]: *** [Makefile.multimedia:399: sub-qmediaplaylist-make_first] Error 2
      mingw32-make[4]: Leaving directory 'C:/libQT-5.11-dev/build/qtmultimedia/tests/auto/unit'
      mingw32-make[3]: *** [Makefile:40: sub-multimedia-pro-make_first] Error 2
      mingw32-make[3]: Leaving directory 'C:/libQT-5.11-dev/build/qtmultimedia/tests/auto/unit'
      mingw32-make[2]: *** [Makefile:43: sub-unit-make_first] Error 2
      mingw32-make[2]: Leaving directory 'C:/libQT-5.11-dev/build/qtmultimedia/tests/auto'
      mingw32-make[1]: *** [Makefile:41: sub-auto-make_first] Error 2
      mingw32-make[1]: Leaving directory 'C:/libQT-5.11-dev/build/qtmultimedia/tests'
      mingw32-make: *** [Makefile:93: sub-tests-make_first] Error 2
      

       

      and MSVC:

              cd qmediaplaylist\ && ( if not exist Makefile C:\libQT-5.11-dev\build\qtbase\bin\qmake.exe -o Makefile C:\libQT-5.11-dev\build\qtmultimedia\tests\auto\unit\qmediaplaylist\qmediaplaylist.pro ) && C:\Windows\jom.exe -f Makefile
              C:\Windows\jom.exe -f Makefile.Release
              link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:CONSOLE "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST:embed /OUT:release\tst_qmediaplaylist.exe @C:\Users\test\AppData\Local\Temp\tst_qmediaplaylist.exe.11248.15.jom
      qtmultimedia_m3u.lib(moc_qm3uhandler.obj) : error LNK2005: "private: static void __cdecl QM3uPlaylistPlugin::qt_static_metacall(class QObject *,enum QMetaObject::Call,int,void * *)" (?qt_static_metacall@QM3uPlaylistPlugin@@CAXPEAVQObject@@W4Call@QMetaObject@@HPEAPEAX@Z) already defined in moc_qm3uhandler.obj
      qtmultimedia_m3u.lib(moc_qm3uhandler.obj) : error LNK2005: "public: virtual struct QMetaObject const * __cdecl QM3uPlaylistPlugin::metaObject(void)const " (?metaObject@QM3uPlaylistPlugin@@UEBAPEBUQMetaObject@@XZ) already defined in moc_qm3uhandler.obj
      qtmultimedia_m3u.lib(moc_qm3uhandler.obj) : error LNK2005: "public: virtual int __cdecl QM3uPlaylistPlugin::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@QM3uPlaylistPlugin@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z) already defined in moc_qm3uhandler.obj
      qtmultimedia_m3u.lib(moc_qm3uhandler.obj) : error LNK2005: "public: virtual void * __cdecl QM3uPlaylistPlugin::qt_metacast(char const *)" (?qt_metacast@QM3uPlaylistPlugin@@UEAAPEAXPEBD@Z) already defined in moc_qm3uhandler.obj
      qtmultimedia_m3u.lib(moc_qm3uhandler.obj) : error LNK2005: "public: static struct QMetaObject const QM3uPlaylistPlugin::staticMetaObject" (?staticMetaObject@QM3uPlaylistPlugin@@2UQMetaObject@@B) already defined in moc_qm3uhandler.obj
         Creating library release\tst_qmediaplaylist.lib and object release\tst_qmediaplaylist.exp
      release\tst_qmediaplaylist.exe : fatal error LNK1169: one or more multiply defined symbols found
      jom: C:\libQT-5.11-dev\build\qtmultimedia\tests\auto\unit\qmediaplaylist\Makefile.Release [release\tst_qmediaplaylist.exe] Error 1169
      jom: C:\libQT-5.11-dev\build\qtmultimedia\tests\auto\unit\qmediaplaylist\Makefile [release] Error 2
      jom: C:\libQT-5.11-dev\build\qtmultimedia\tests\auto\unit\Makefile.multimedia [sub-qmediaplaylist-make_first] Error 2
      jom: C:\libQT-5.11-dev\build\qtmultimedia\tests\auto\unit\Makefile [sub-multimedia-pro-make_first] Error 2
      

       

      Reproduced for:

      • static builds using mingw-w64 and MSVC with '-developer-build' flag,

      not reproduced for:

      • shared builds using mingw-w64 and MSVC with '-developer-build' flag.

       

       

      Best,

      Alexander

       

      Attachments

        For Gerrit Dashboard: QTBUG-66480
        # Subject Branch Project Status CR V

        Activity

          People

            valentyn.doroshchuk Valentyn Doroshchuk
            sav sav
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes