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

Clash with Qt's internal logging categories when building project with a static build of Qt

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P3: Somewhat important
    • None
    • 5.11
    • Core: Other
    • None
    • Ubuntu 16.04

    Description

      I built https://github.com/mitchcurtis/slate with a static release build of Qt. The Qt build was built with the following script:

      #! /bin/bash
      
      qtSourceDir=/home/mitch/dev/qt5.11
      qtBuildDir=/home/mitch/dev/qt5.11-static-release
      
      set -e
      
      rm -fr $qtBuildDir
      mkdir $qtBuildDir
      cd $qtBuildDir
      
      export LLVM_INSTALL_DIR=/home/mitch/dev/clang+llvm-5.0.1-x86_64-linux-gnu-ubuntu-16.04
      $qtSourceDir/configure -developer-build -static -release -force-debug-info -opensource -confirm-license -nomake tests -nomake examples -silent -opengl desktop 2>&1 | tee -a configure.txt
      
      make -j 8 2>&1 | tee -a make.txt
      

      When building the application, linking fails:

      make[1]: Leaving directory '/home/mitch/dev/slate-qt5_11_static_release-Release/3rdparty'
      cd app/ && ( test -e Makefile || /home/mitch/dev/qt5.11-static-release/qtbase/bin/qmake -o Makefile /home/mitch/dev/slate/app/app.pro -spec linux-g++ ) && /usr/bin/make -f Makefile 
      make[1]: Entering directory '/home/mitch/dev/slate-qt5_11_static_release-Release/app'
      g++ -Wl,-O1 -o slate application.o applypixelerasercommand.o applypixelfillcommand.o applypixelpencommand.o applytilecanvaspixelfillcommand.o applytileerasercommand.o applytilefillcommand.o applytilepencommand.o canvaspane.o changeimagesizecommand.o changelayeredimagesizecommand.o changeimagecanvassizecommand.o changetilecanvassizecommand.o filevalidator.o fillalgorithms.o imagecanvas.o imageproject.o keysequenceeditor.o moveimagecanvasselectioncommand.o newprojectvalidator.o project.o projectmanager.o rectangularcursor.o ruler.o splitter.o tilecanvas.o tile.o tilegrid.o tileset.o tilesetproject.o tilesetswatchimage.o utils.o deleteimagecanvasselectioncommand.o flipimagecanvasselectioncommand.o pasteimagecanvascommand.o applicationsettings.o applypixellinecommand.o layeredimageproject.o imagelayer.o jsonutils.o layeredimagecanvas.o layermodel.o changelayeredimagecanvassizecommand.o changelayerordercommand.o changelayernamecommand.o changelayervisiblecommand.o changelayeropacitycommand.o deletelayercommand.o addlayercommand.o applygreedypixelfillcommand.o guide.o addguidecommand.o moveguidecommand.o deleteguidecommand.o crophelper.o animationplayback.o spriteimageprovider.o spriteimage.o projectimageprovider.o movelayeredimagecontentscommand.o texturedfillparameters.o texturedfillpreviewitem.o mergelayerscommand.o main.o slate_plugin_import.o slate_qml_plugin_import.o qrc_fonts.o qrc_images.o qrc_qml.o qrc_config.o moc_applypixelerasercommand.o moc_applypixelfillcommand.o moc_applypixelpencommand.o moc_applytilecanvaspixelfillcommand.o moc_applytileerasercommand.o moc_applytilefillcommand.o moc_applytilepencommand.o moc_canvaspane.o moc_changeimagesizecommand.o moc_changeimagecanvassizecommand.o moc_changelayeredimagesizecommand.o moc_changetilecanvassizecommand.o moc_filevalidator.o moc_imagecanvas.o moc_imageproject.o moc_keysequenceeditor.o moc_moveimagecanvasselectioncommand.o moc_newprojectvalidator.o moc_project.o moc_projectmanager.o moc_rectangularcursor.o moc_ruler.o moc_splitter.o moc_tilecanvas.o moc_tilegrid.o moc_tile.o moc_tileset.o moc_tilesetproject.o moc_tilesetswatchimage.o moc_deleteimagecanvasselectioncommand.o moc_flipimagecanvasselectioncommand.o moc_pasteimagecanvascommand.o moc_applicationsettings.o moc_applypixellinecommand.o moc_layeredimageproject.o moc_imagelayer.o moc_layeredimagecanvas.o moc_layermodel.o moc_changelayeredimagecanvassizecommand.o moc_changelayerordercommand.o moc_changelayernamecommand.o moc_changelayervisiblecommand.o moc_changelayeropacitycommand.o moc_deletelayercommand.o moc_addlayercommand.o moc_applygreedypixelfillcommand.o moc_addguidecommand.o moc_moveguidecommand.o moc_deleteguidecommand.o moc_crophelper.o moc_animationplayback.o moc_spriteimage.o moc_movelayeredimagecontentscommand.o moc_texturedfillparameters.o moc_texturedfillpreviewitem.o moc_mergelayerscommand.o   -L/home/mitch/dev/qt5.11-static-release/qtbase/plugins/platforms -lqxcb -L/home/mitch/dev/qt5.11-static-release/qtbase/lib -L/home/mitch/dev/qt5.11-static-release/qtbase/plugins/xcbglintegrations -lqxcb-egl-integration -lqxcb-glx-integration -lQt5XcbQpa -lQt5LinuxAccessibilitySupport -lQt5AccessibilitySupport -lQt5GlxSupport -lxcb-glx -lXi -lSM -lICE -lXrender -lxcb-xkb -lxcb-render-util -lxcb-sync -lxcb-xfixes -lxcb-xinerama -lxcb-randr -lxcb-render -lxcb-image -lxcb-shm -lxcb-keysyms -lxcb-icccm -lxcb-shape -lxkbcommon-x11 -L/home/mitch/dev/qt5.11-static-release/qtbase/plugins/imageformats -lqgif -lqicns -lqico -lqjp2 -ljasper -lqjpeg -ljpeg -lqtga -lqtiff -ltiff -lqwbmp -lqwebp -L/home/mitch/dev/qt5.11-static-release/qtbase/plugins/egldeviceintegrations -lqeglfs-emu-integration -lqeglfs-kms-egldevice-integration -lqeglfs-kms-integration -lQt5EglFsKmsSupport -lQt5KmsSupport -lQt5EdidSupport -lgbm -ldrm -lqeglfs-x11-integration -lQt5EglFSDeviceIntegration -lQt5EventDispatcherSupport -lQt5ServiceSupport -lQt5ThemeSupport -lQt5FontDatabaseSupport -lfontconfig -lfreetype -lQt5FbSupport -lQt5EglSupport -lXext -lQt5InputSupport -lmtdev -linput -lxkbcommon -lQt5PlatformCompositorSupport -lQt5DeviceDiscoverySupport -ludev -lX11-xcb -lX11 -lxcb -lEGL -L/home/mitch/dev/qt5.11-static-release/qtbase/plugins/qmltooling -lqmldbg_debugger -lqmldbg_inspector -lqmldbg_local -lqmldbg_messages -lqmldbg_native -lqmldbg_nativedebugger -lqmldbg_profiler -lqmldbg_quickprofiler -lqmldbg_server -lQt5PacketProtocol -lqmldbg_tcp -L/home/mitch/dev/qt5.11-static-release/qtbase/plugins/bearer -lqconnmanbearer -lqgenericbearer -lqnmbearer -lQt5DBus -ldbus-1 -lQt5Undo -L/home/mitch/dev/qt5.11-static-release/qtbase/qml/QtQuick.2 -lqtquick2plugin -L/home/mitch/dev/qt5.11-static-release/qtbase/qml/QtQuick/Layouts -lqquicklayoutsplugin -L/home/mitch/dev/qt5.11-static-release/qtbase/qml/QtQuick/Window.2 -lwindowplugin -L/home/mitch/dev/qt5.11-static-release/qtbase/qml/QtQuick/Controls.2 -lqtquickcontrols2plugin -L/home/mitch/dev/qt5.11-static-release/qtbase/qml/Qt/labs/settings -lqmlsettingsplugin -L/home/mitch/dev/qt5.11-static-release/qtbase/qml/Qt/labs/platform -lqtlabsplatformplugin -lQt5Widgets -L/home/mitch/dev/qt5.11-static-release/qtbase/qml/QtQuick/Templates.2 -lqtquicktemplates2plugin -L/home/mitch/dev/qt5.11-static-release/qtbase/qml/QtGraphicalEffects -lqtgraphicaleffectsplugin -L/home/mitch/dev/qt5.11-static-release/qtbase/qml/QtGraphicalEffects/private -lqtgraphicaleffectsprivate -L/home/mitch/dev/qt5.11-static-release/qtbase/qml/QtQml/Models.2 -lmodelsplugin -L/home/mitch/dev/qt5.11-static-release/qtbase/qml/QtQuick/Controls.2/Universal -lqtquickcontrols2universalstyleplugin -L/home/mitch/dev/qt5.11-static-release/qtbase/qml/QtQuick/Controls.2/Material -lqtquickcontrols2materialstyleplugin -lQt5QuickControls2 -lQt5QuickTemplates2 -lQt5Quick -lQt5Gui -lpng12 -lqtharfbuzz -lQt5Qml -lrt -lQt5Network -lQt5Core -lm -lz -licui18n -licuuc -licudata -lqtpcre2 -ldl -lgthread-2.0 -lglib-2.0 -lGL -lpthread 
      /home/mitch/dev/qt5.11-static-release/qtbase/qml/Qt/labs/settings/libqmlsettingsplugin.a(qqmlsettings.o): In function `lcSettings()':
      /home/mitch/dev/qt5.11/qtdeclarative/src/imports/settings/qqmlsettings.cpp:235: multiple definition of `lcSettings()'
      Makefile:627: recipe for target 'slate' failed
      make[1]: Leaving directory '/home/mitch/dev/slate-qt5_11_static_release-Release/app'
      Makefile:89: recipe for target 'sub-app-make_first-ordered' failed
      applicationsettings.o:applicationsettings.cpp:(.text+0xf0): first defined here
      /home/mitch/dev/qt5.11-static-release/qtbase/lib/libQt5Quick.a(qquickcontext2dtexture.o): In function `lcCanvas()':
      /home/mitch/dev/qt5.11/qtdeclarative/src/quick/items/context2d/qquickcontext2dtexture.cpp:58: multiple definition of `lcCanvas()'
      imagecanvas.o:imagecanvas.cpp:(.text+0x30): first defined here
      collect2: error: ld returned 1 exit status
      make[1]: *** [slate] Error 1
      make: *** [sub-app-make_first-ordered] Error 2
      17:03:08: The process "/usr/bin/make" exited with code 2.
      Error while building/deploying project slate (kit: qt5.11-static-release)
      When executing step "Make"
      

      In the case of lcCanvas, it is declared properly in the header. lcSettings is only used in the .cpp file.

      Renaming the categories is a workaround.

      Attachments

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

        Activity

          People

            kkohne Kai Köhne
            mitch_curtis Mitch Curtis
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There is 1 open Gerrit change