I have a Qt Quick application using the following modules
QT = core gui qml quick widgets \
core-private gui-private \
multimedia printsupport`
which I deploy on OS X. Now my main binary as well as a lot of Qt Qtick plugins show a dependency on Qt Network.
otool -L /path/to/My.app/Contents/MacOS/My
/System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 55471.14.18)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1056.16.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
@executable_path/../Frameworks/QtQuick.framework/Versions/5/QtQuick (compatibility version 5.4.0, current version 5.4.2)
@executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui (compatibility version 5.4.0, current version 5.4.2)
@executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore (compatibility version 5.4.0, current version 5.4.2)
/System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
@executable_path/../Frameworks/QtQml.framework/Versions/5/QtQml (compatibility version 5.4.0, current version 5.4.2)
/Users/me/Qt/5.4/clang_64/lib/QtNetwork.framework/Versions/5/QtNetwork (compatibility version 5.4.0, current version 5.4.2)
@executable_path/../Frameworks/QtPrintSupport.framework/Versions/5/QtPrintSupport (compatibility version 5.4.0, current version 5.4.2)
@executable_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.4.0, current version 5.4.2)
@executable_path/../Frameworks/QtMultimedia.framework/Versions/5/QtMultimedia (compatibility version 5.4.0, current version 5.4.2)
/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 855.17.0)
The same dependency on Qt Network is found in the following plugins
My.app/Contents/Frameworks/QtMultimedia.framework/Versions/5/QtMultimedia
My.app/Contents/Frameworks/QtMultimediaQuick_p.framework/Versions/5/QtMultimediaQuick_p
My.app/Contents/Frameworks/QtQml.framework/Versions/5/QtQml
My.app/Contents/Frameworks/QtQuick.framework/Versions/5/QtQuick
My.app/Contents/Plugins/audio/libqtaudio_coreaudio.dylib
My.app/Contents/Resources/qml/QtMultimedia/libdeclarative_multimedia.dylib
My.app/Contents/Resources/qml/QtQuick/Controls/libqtquickcontrolsplugin.dylib
My.app/Contents/Resources/qml/QtQuick/Dialogs/libdialogplugin.dylib
My.app/Contents/Resources/qml/QtQuick/Dialogs/Private/libdialogsprivateplugin.dylib
My.app/Contents/Resources/qml/QtQuick/Layouts/libqquicklayoutsplugin.dylib
My.app/Contents/Resources/qml/QtQuick/PrivateWidgets/libwidgetsplugin.dylib
My.app/Contents/Resources/qml/QtQuick/Window.2/libwindowplugin.dylib
My.app/Contents/Resources/qml/QtQuick.2/libqtquick2plugin.dylib
I don't get why the dependency in Qt Network is compiled into my own binary.
For simple UI files such as this one, select File > New File or Project > Application (Qt Quick) > Qt Quick Application - Empty from within Qt Creator. Pressing the green Run button runs the application. You should see the text Hello, World! in the center of a red rectangle.
QML is a user interface specification and programming language. It allows developers and designers alike to create highly performant, fluidly animated and visually appealing applications.
No.
Proof
The following command line script generates a dependency list of Qt5 modules on Linux:
# Run in e.g. Qt/5.4/gcc_64/lib
for f in libQt5*.so; do mod=$(basename "$f" .so | cut -c "7-"); echo "$mod"; ldd "$f" | grep "libQt5" | cut -f 1 -d">" | tr -dc "a-zA-Z0-9.[:space:]" | cut -d"." -f 1 | sed 's/libQt5//g'; done
which results in the following output:
Bluetooth
DBus
Core
CLucene
Core
Concurrent
Core
Core
DBus
Core
Declarative
Widgets
Gui
Script
Sql
XmlPatterns
Network
Core
DesignerComponents
Designer
Widgets
Gui
Xml
Core
Designer
Widgets
Gui
Xml
Core
Gui
Core
Help
Widgets
Gui
Core
Network
Sql
CLucene
Location
Positioning
Quick
Gui
Core
Qml
Network
MultimediaQuick_p
Quick
Multimedia
Gui
Core
Qml
Network
Multimedia
Network
Gui
Core
MultimediaWidgets
Multimedia
Widgets
Gui
Core
OpenGL
Network
Network
Core
Nfc
Core
OpenGL
Widgets
Gui
Core
Positioning
Core
PrintSupport
Widgets
Gui
Core
Qml
Network
Core
QuickParticles
Quick
Gui
Qml
Core
Network
Quick
Gui
Qml
Network
Core
QuickTest
Widgets
Gui
Core
Test
Quick
Qml
Network
QuickWidgets
Quick
Widgets
Gui
Qml
Core
Network
Script
Core
ScriptTools
Core
Widgets
Gui
Script
Sensors
Core
SerialPort
Core
Sql
Core
Svg
Widgets
Gui
Core
Test
Core
WebChannel
Qml
Core
Network
WebKit
Sensors
Core
Positioning
Quick
Gui
Qml
Network
WebChannel
Sql
WebKitWidgets
Widgets
WebKit
Gui
Network
Core
Sensors
PrintSupport
OpenGL
Positioning
Quick
Qml
WebChannel
Sql
WebSockets
Network
Core
Widgets
Gui
Core
X11Extras
Gui
Core
XmlPatterns
Network
Core
Xml
Core
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With