Qt アプリケーションが動的にロードしているプラグインを知る方法

Qt のアプリケーションは、主に以下の3種類のバイナリで構成されます。

  • アプリケーション本体の実行バイナリ
  • 動的にリンクしているライブラリ
    • Qt のモジュールなど
    • ldd で調べられるやつです
  • 動的にロードしているライブラリ
    • Qt のプラグインなど
    • ldd では調べられないやつです

Qt では、動的にロードしているライブラリは、以下のように確認できます。

$ QT_DEBUG_PLUGINS=1 /opt/weather/bin/weather 2>&1 |grep loaded
loaded library "/opt/qt/plugins/platforms/libqeglfs.so"
loaded library "/opt/qt/plugins/egldeviceintegrations/libqeglfs-brcm-integration.so"
loaded library "/opt/qt/plugins/imageformats/libqgif.so"
loaded library "/opt/qt/plugins/imageformats/libqico.so"
loaded library "/opt/qt/plugins/imageformats/libqjpeg.so"
loaded library "/opt/qt/qml/QtQuick.2/libqtquick2plugin.so"
loaded library "/opt/qt/qml/QtQuick/Window.2/libwindowplugin.so"
loaded library "/opt/qt/qml/Qt/labs/settings/libqmlsettingsplugin.so"
loaded library "/opt/qt/qml/QtQml/libqmlplugin.so"
loaded library "/opt/qt/qml/QtQml/Models.2/libmodelsplugin.so"
loaded library "/opt/qt/plugins/bearer/libqconnmanbearer.so"
loaded library "libdbus-1"
loaded library "/opt/qt/plugins/bearer/libqgenericbearer.so"
loaded library "/opt/qt/plugins/bearer/libqnmbearer.so"
loaded library "libresolv.so.2"

Qt Quickで天気予報を表示するアプリ で確認したところ、13個の Qt のプラグインと2個の外部のライブラリを動的にロードしていました。

QT_DEBUG_PLUGINS については Environment Variables Recognized by Qt を参照してください。

おすすめ