Uploaded image for project: 'Qbs ("Cubes")'
  1. Qbs ("Cubes")
  2. QBS-1798

Duplicate libraries in linker command line when using statically linked Qt

    XMLWordPrintable

Details

    • macOS
    • fb89102b5 (master)

    Description

      When building a simple project using Qt Quick for the iOS-simulator I get a linker warning saying "ignoring duplicate libraries".

      The command line contains lots of duplicate frameworks but the libraries it complains about are contained in the generated "plugins.list.d" file.

      The following project reproduces this behavior:

       test.qbs

      CppApplication {
      	name: "TestApp"
      	Depends {
      		name: "Qt.quickcontrols2"
      	}
      	files: [
      		"test.cpp",
      		"test.qml"
      	]
      }
      

      test.qml

      import QtQuick.Controls
      
      ApplicationWindow {}
      

      test.cpp

      int main(){}
      

       

      This is the output I get when building the above with a profile created with "setup-qt" for Qt 6.6.3 whose parent profile is the default created x86_64 iOS simulator profile:

      linking TestApp [TestApp]
      /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -Wl,-arch,x86_64,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator17.2.sdk,-e,_qt_main_wrapper,-force_load,/Users/lbuckel/Qt/6.6.3/ios/plugins/platforms/libqios_debug.a -stdlib=libc++ -L/Users/lbuckel/Qt/6.6.3/ios/lib -L/Users/lbuckel/Qt/6.6.3/ios/plugins/platforms -target x86_64-apple-ios14.0-macho -o /Users/lbuckel/git/qbs-test/.build/default/TestApp.93c1d015/.tmp/TestApp /Users/lbuckel/git/qbs-test/.build/default/TestApp.93c1d015/3a52ce780950d4d9/TestApp_qt_plugin_import_qgif.cpp.o /Users/lbuckel/git/qbs-test/.build/default/TestApp.93c1d015/3a52ce780950d4d9/TestApp_qt_plugin_import_qico.cpp.o /Users/lbuckel/git/qbs-test/.build/default/TestApp.93c1d015/3a52ce780950d4d9/TestApp_qt_plugin_import_qios.cpp.o /Users/lbuckel/git/qbs-test/.build/default/TestApp.93c1d015/3a52ce780950d4d9/TestApp_qt_plugin_import_qjpeg.cpp.o /Users/lbuckel/git/qbs-test/.build/default/TestApp.93c1d015/3a52ce780950d4d9/TestApp_qt_plugin_import_qmldbg_debugger.cpp.o /Users/lbuckel/git/qbs-test/.build/default/TestApp.93c1d015/3a52ce780950d4d9/TestApp_qt_plugin_import_qmldbg_inspector.cpp.o /Users/lbuckel/git/qbs-test/.build/default/TestApp.93c1d015/3a52ce780950d4d9/TestApp_qt_plugin_import_qmldbg_local.cpp.o /Users/lbuckel/git/qbs-test/.build/default/TestApp.93c1d015/3a52ce780950d4d9/TestApp_qt_plugin_import_qmldbg_messages.cpp.o /Users/lbuckel/git/qbs-test/.build/default/TestApp.93c1d015/3a52ce780950d4d9/TestApp_qt_plugin_import_qmldbg_native.cpp.o /Users/lbuckel/git/qbs-test/.build/default/TestApp.93c1d015/3a52ce780950d4d9/TestApp_qt_plugin_import_qmldbg_nativedebugger.cpp.o /Users/lbuckel/git/qbs-test/.build/default/TestApp.93c1d015/3a52ce780950d4d9/TestApp_qt_plugin_import_qmldbg_preview.cpp.o /Users/lbuckel/git/qbs-test/.build/default/TestApp.93c1d015/3a52ce780950d4d9/TestApp_qt_plugin_import_qmldbg_profiler.cpp.o /Users/lbuckel/git/qbs-test/.build/default/TestApp.93c1d015/3a52ce780950d4d9/TestApp_qt_plugin_import_qmldbg_quickprofiler.cpp.o /Users/lbuckel/git/qbs-test/.build/default/TestApp.93c1d015/3a52ce780950d4d9/TestApp_qt_plugin_import_qmldbg_server.cpp.o /Users/lbuckel/git/qbs-test/.build/default/TestApp.93c1d015/3a52ce780950d4d9/TestApp_qt_plugin_import_qmldbg_tcp.cpp.o /Users/lbuckel/git/qbs-test/.build/default/TestApp.93c1d015/3a52ce780950d4d9/TestApp_qt_plugin_import_qscnetworkreachability.cpp.o /Users/lbuckel/git/qbs-test/.build/default/TestApp.93c1d015/3a52ce780950d4d9/TestApp_qt_plugin_import_qsecuretransportbackend.cpp.o /Users/lbuckel/git/qbs-test/.build/default/TestApp.93c1d015/3a52ce780950d4d9/TestApp_qt_plugin_import_qsvg.cpp.o /Users/lbuckel/git/qbs-test/.build/default/TestApp.93c1d015/3a52ce780950d4d9/TestApp_qt_plugin_import_qsvgicon.cpp.o /Users/lbuckel/git/qbs-test/.build/default/TestApp.93c1d015/3a52ce780950d4d9/qml_plugin_import.cpp.o /Users/lbuckel/git/qbs-test/.build/default/TestApp.93c1d015/3a52ce780950d4d9/test.cpp.o -framework OpenGLES -framework ImageIO -framework CoreGraphics -framework CoreText -framework Metal -framework IOKit -framework Foundation -framework MobileCoreServices -framework UIKit -framework CoreFoundation -framework Security -framework CFNetwork -framework SystemConfiguration -framework OpenGLES -framework ImageIO -framework CoreGraphics -framework CoreText -framework Metal -framework IOKit -framework Foundation -framework MobileCoreServices -framework UIKit -framework CoreFoundation -framework Security -framework CFNetwork -framework SystemConfiguration -framework IOKit -framework MobileCoreServices -framework OpenGLES -framework ImageIO -framework CoreFoundation -framework CoreGraphics -framework Foundation -framework CoreText -framework UIKit -framework Metal -framework IOKit -framework MobileCoreServices -framework OpenGLES -framework ImageIO -framework CoreFoundation -framework CoreGraphics -framework Foundation -framework CoreText -framework UIKit -framework Metal -framework IOKit -framework Foundation -framework MobileCoreServices -framework UIKit -framework CoreFoundation -framework Security -framework CFNetwork -framework SystemConfiguration -framework IOKit -framework MobileCoreServices -framework OpenGLES -framework ImageIO -framework CoreFoundation -framework CoreGraphics -framework Foundation -framework CoreText -framework UIKit -framework Metal -framework AudioToolbox -framework QuartzCore -framework IOKit -framework MobileCoreServices -framework OpenGLES -framework ImageIO -framework CoreFoundation -framework CoreGraphics -framework Foundation -framework CoreText -framework UIKit -framework Metal -framework AssetsLibrary -framework UniformTypeIdentifiers -framework Photos -framework IOKit -framework MobileCoreServices -framework OpenGLES -framework ImageIO -framework CoreFoundation -framework CoreGraphics -framework Foundation -framework CoreText -framework UIKit -framework Metal -framework IOKit -framework MobileCoreServices -framework OpenGLES -framework ImageIO -framework CoreFoundation -framework CoreGraphics -framework Foundation -framework CoreText -framework UIKit -framework Metal -framework IOKit -framework MobileCoreServices -framework OpenGLES -framework ImageIO -framework CoreFoundation -framework CoreGraphics -framework Foundation -framework CoreText -framework UIKit -framework Metal -framework IOKit -framework Foundation -framework MobileCoreServices -framework UIKit -framework CoreFoundation -framework Security -framework CFNetwork -framework SystemConfiguration -framework IOKit -framework Foundation -framework MobileCoreServices -framework UIKit -framework CoreFoundation -framework Security -framework CFNetwork -framework SystemConfiguration -framework OpenGLES -framework ImageIO -framework CoreGraphics -framework CoreText -framework Metal -framework IOKit -framework Foundation -framework MobileCoreServices -framework UIKit -framework CoreFoundation -framework Security -framework CFNetwork -framework SystemConfiguration -framework IOKit -framework Foundation -framework MobileCoreServices -framework UIKit -framework CoreFoundation -framework Security -framework CFNetwork -framework SystemConfiguration -framework Security -framework CFNetwork -framework SystemConfiguration -framework IOKit -framework MobileCoreServices -framework OpenGLES -framework ImageIO -framework CoreFoundation -framework CoreGraphics -framework Foundation -framework CoreText -framework UIKit -framework Metal -framework IOKit -framework Foundation -framework MobileCoreServices -framework UIKit -framework CoreFoundation -framework Security -framework CFNetwork -framework SystemConfiguration -framework IOKit -framework Foundation -framework MobileCoreServices -framework UIKit -framework CoreFoundation -framework Security -framework CFNetwork -framework SystemConfiguration -framework IOKit -framework Foundation -framework MobileCoreServices -framework UIKit -framework CoreFoundation -framework Security -framework CFNetwork -framework SystemConfiguration -framework IOKit -framework Foundation -framework MobileCoreServices -framework UIKit -framework CoreFoundation -framework Security -framework CFNetwork -framework SystemConfiguration -framework OpenGLES -framework ImageIO -framework CoreGraphics -framework CoreText -framework Metal -framework IOKit -framework Foundation -framework MobileCoreServices -framework UIKit -framework CoreFoundation -framework Security -framework CFNetwork -framework SystemConfiguration -framework IOKit -framework Foundation -framework MobileCoreServices -framework UIKit -framework CoreFoundation -framework Security -framework CFNetwork -framework SystemConfiguration -framework IOKit -framework Foundation -framework MobileCoreServices -framework UIKit -framework CoreFoundation -framework Security -framework CFNetwork -framework SystemConfiguration -framework IOKit -framework Foundation -framework MobileCoreServices -framework UIKit -framework CoreFoundation -framework Security -framework CFNetwork -framework SystemConfiguration -framework IOKit -framework MobileCoreServices -framework OpenGLES -framework ImageIO -framework CoreFoundation -framework CoreGraphics -framework Foundation -framework CoreText -framework UIKit -framework Metal -framework UIKit -framework QuartzCore -framework CoreText -framework CoreGraphics -framework Foundation -framework CoreFoundation -framework AudioToolbox -framework CFNetwork -framework SystemConfiguration -framework IOKit -framework Foundation -framework MobileCoreServices -framework UIKit -framework CoreFoundation -framework Security -framework IOKit -framework Foundation -framework MobileCoreServices -framework UIKit -framework CoreFoundation -framework Security -framework CFNetwork -framework SystemConfiguration -framework IOKit -framework CoreFoundation -framework Foundation -framework MobileCoreServices -framework UIKit -framework Foundation -framework CoreFoundation /Users/lbuckel/Qt/6.6.3/ios/plugins/tls/libqsecuretransportbackend_debug.a /Users/lbuckel/Qt/6.6.3/ios/plugins/networkinformation/libqscnetworkreachability_debug.a /Users/lbuckel/Qt/6.6.3/ios/plugins/imageformats/libqsvg_debug.a /Users/lbuckel/Qt/6.6.3/ios/plugins/iconengines/libqsvgicon_debug.a /Users/lbuckel/Qt/6.6.3/ios/qml/QtQuick/Controls/objects-Debug/QuickControls2_resources_1/.rcc/qrc_qmake_QtQuick_Controls.cpp.o /Users/lbuckel/Qt/6.6.3/ios/qml/QtQuick/Templates/objects-Debug/QuickTemplates2_resources_1/.rcc/qrc_qmake_QtQuick_Templates.cpp.o /Users/lbuckel/Qt/6.6.3/ios/lib/libQt6QuickControls2_debug.a /Users/lbuckel/Qt/6.6.3/ios/lib/libQt6QuickTemplates2_debug.a /Users/lbuckel/Qt/6.6.3/ios/lib/libQt6Svg_debug.a /Users/lbuckel/Qt/6.6.3/ios/plugins/imageformats/libqjpeg_debug.a /Users/lbuckel/Qt/6.6.3/ios/lib/libQt6BundledLibjpeg_debug.a /Users/lbuckel/Qt/6.6.3/ios/plugins/platforms/libqios_debug.a /Users/lbuckel/Qt/6.6.3/ios/plugins/imageformats/libqico_debug.a /Users/lbuckel/Qt/6.6.3/ios/plugins/imageformats/libqgif_debug.a /Users/lbuckel/Qt/6.6.3/ios/plugins/qmltooling/libqmldbg_tcp_debug.a /Users/lbuckel/Qt/6.6.3/ios/plugins/qmltooling/libqmldbg_server_debug.a /Users/lbuckel/Qt/6.6.3/ios/plugins/qmltooling/libqmldbg_quickprofiler_debug.a /Users/lbuckel/Qt/6.6.3/ios/plugins/qmltooling/libqmldbg_profiler_debug.a /Users/lbuckel/Qt/6.6.3/ios/plugins/qmltooling/libqmldbg_preview_debug.a /Users/lbuckel/Qt/6.6.3/ios/plugins/qmltooling/libqmldbg_nativedebugger_debug.a /Users/lbuckel/Qt/6.6.3/ios/plugins/qmltooling/libqmldbg_native_debug.a /Users/lbuckel/Qt/6.6.3/ios/plugins/qmltooling/libqmldbg_messages_debug.a /Users/lbuckel/Qt/6.6.3/ios/plugins/qmltooling/libqmldbg_local_debug.a /Users/lbuckel/Qt/6.6.3/ios/qml/QtQuick/objects-Debug/Quick_resources_1/.rcc/qrc_qmake_QtQuick.cpp.o /Users/lbuckel/Qt/6.6.3/ios/lib/objects-Debug/Quick_resources_2/.rcc/qrc_scenegraph_shaders.cpp.o /Users/lbuckel/Qt/6.6.3/ios/qml/QtQml/Models/objects-Debug/QmlModels_resources_1/.rcc/qrc_qmake_QtQml_Models.cpp.o /Users/lbuckel/Qt/6.6.3/ios/plugins/qmltooling/libqmldbg_inspector_debug.a /Users/lbuckel/Qt/6.6.3/ios/lib/libQt6Quick_debug.a /Users/lbuckel/Qt/6.6.3/ios/lib/libQt6QmlModels_debug.a /Users/lbuckel/Qt/6.6.3/ios/lib/libQt6OpenGL_debug.a /Users/lbuckel/Qt/6.6.3/ios/plugins/qmltooling/libqmldbg_debugger_debug.a /Users/lbuckel/Qt/6.6.3/ios/lib/libQt6PacketProtocol_debug.a /Users/lbuckel/Qt/6.6.3/ios/lib/libQt6Qml_debug.a @/Users/lbuckel/git/qbs-test/.build/default/TestApp.93c1d015/plugins.list.d /Users/lbuckel/Qt/6.6.3/ios/qml/QtQml/Base/objects-Debug/Qml_resources_1/.rcc/qrc_qmake_QtQml_Base.cpp.o /Users/lbuckel/Qt/6.6.3/ios/lib/objects-Debug/Qml_resources_2/.rcc/qrc_qmlMetaQmldir.cpp.o /Users/lbuckel/Qt/6.6.3/ios/lib/objects-Debug/Gui_resources_1/.rcc/qrc_qpdf.cpp.o /Users/lbuckel/Qt/6.6.3/ios/lib/objects-Debug/Gui_resources_2/.rcc/qrc_gui_shaders.cpp.o /Users/lbuckel/Qt/6.6.3/ios/lib/libQt6Gui_debug.a /Users/lbuckel/Qt/6.6.3/ios/lib/libQt6BundledHarfbuzz_debug.a /Users/lbuckel/Qt/6.6.3/ios/lib/libQt6BundledFreetype_debug.a /Users/lbuckel/Qt/6.6.3/ios/lib/libQt6BundledLibpng_debug.a /Users/lbuckel/Qt/6.6.3/ios/lib/libQt6Network_debug.a /Users/lbuckel/Qt/6.6.3/ios/lib/libQt6Core_debug.a -lz -lm /Users/lbuckel/Qt/6.6.3/ios/lib/libQt6BundledPcre2_debug.a -framework AssetsLibrary -framework UniformTypeIdentifiers -framework Photos -framework OpenGLES -framework ImageIO -framework Metal -framework QuartzCore -framework CoreText -framework CoreGraphics -framework AudioToolbox -framework Security -framework CFNetwork -framework SystemConfiguration -framework IOKit -framework MobileCoreServices -framework UIKit -framework Foundation -framework CoreFoundation
      
      ld: warning: ignoring duplicate libraries: '-lm', '-lz', '/Users/lbuckel/Qt/6.6.3/ios/lib/libQt6BundledFreetype_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/lib/libQt6BundledHarfbuzz_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/lib/libQt6BundledLibpng_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/lib/libQt6BundledPcre2_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/lib/libQt6Core_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/lib/libQt6Gui_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/lib/libQt6Network_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/lib/libQt6OpenGL_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/lib/libQt6QmlModels_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/lib/libQt6Qml_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/lib/libQt6QuickControls2BasicStyleImpl_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/lib/libQt6QuickControls2FusionStyleImpl_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/lib/libQt6QuickControls2IOSStyleImpl_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/lib/libQt6QuickControls2ImagineStyleImpl_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/lib/libQt6QuickControls2Impl_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/lib/libQt6QuickControls2MaterialStyleImpl_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/lib/libQt6QuickControls2UniversalStyleImpl_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/lib/libQt6QuickControls2_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/lib/libQt6QuickTemplates2_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/lib/libQt6Quick_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/qml/QtQml/Base/libqmlplugin_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/qml/QtQml/Models/libmodelsplugin_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/qml/QtQml/WorkerScript/libworkerscriptplugin_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/qml/QtQml/libqmlmetaplugin_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/qml/QtQuick/Controls/Basic/impl/libqtquickcontrols2basicstyleimplplugin_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/qml/QtQuick/Controls/Basic/libqtquickcontrols2basicstyleplugin_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/qml/QtQuick/Controls/Fusion/impl/libqtquickcontrols2fusionstyleimplplugin_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/qml/QtQuick/Controls/Fusion/libqtquickcontrols2fusionstyleplugin_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/qml/QtQuick/Controls/Imagine/impl/libqtquickcontrols2imaginestyleimplplugin_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/qml/QtQuick/Controls/Imagine/libqtquickcontrols2imaginestyleplugin_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/qml/QtQuick/Controls/Material/impl/libqtquickcontrols2materialstyleimplplugin_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/qml/QtQuick/Controls/Material/libqtquickcontrols2materialstyleplugin_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/qml/QtQuick/Controls/Universal/impl/libqtquickcontrols2universalstyleimplplugin_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/qml/QtQuick/Controls/Universal/libqtquickcontrols2universalstyleplugin_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/qml/QtQuick/Controls/iOS/impl/libqtquickcontrols2iosstyleimplplugin_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/qml/QtQuick/Controls/iOS/libqtquickcontrols2iosstyleplugin_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/qml/QtQuick/Controls/impl/libqtquickcontrols2implplugin_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/qml/QtQuick/Controls/libqtquickcontrols2plugin_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/qml/QtQuick/Shapes/libqmlshapesplugin_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/qml/QtQuick/Templates/libqtquicktemplates2plugin_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/qml/QtQuick/Window/libquickwindowplugin_debug.a', '/Users/lbuckel/Qt/6.6.3/ios/qml/QtQuick/libqtquick2plugin_debug.a'
      

       

      All in all I could find three separate locations where static libraries are listed which might conflict with each other:

      1. The staticLibs property in the generated quickcontrols2 module
      2. A group in said module containing the actual file of the static lib tagged as "staticlibrary" and using "filesAreTargets: true"
      3. The "plugins.list" file which is generated in qml.qbs and contains many duplicate entries

      Attachments

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

        Activity

          People

            kandeler Christian Kandeler
            lbuckel Leon Buckel
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes