qt 4.5では、静的にリンクされたプラグインにリソースを含めることはできますか?
質問
リソースが埋め込まれたカスタムQTプラグインモジュールがあります。このプラグインをアプリケーションに静的にリンクしたい:
LIBS += -lstatic_plugin_with_resources
アプリケーションでは、 Q_IMPORT_PLUGIN()
マクロを使用しています。これにより、アプリケーションはプラグインを使用できます。ただし、プラグインは埋め込みリソースにアクセスできません。
プラグインを共有ライブラリとして使用すると機能します。
解決
可能です。アプリケーションでは、静的プラグインに含まれるリソースを明示的に初期化する必要があります。
これは、 Q_INIT_RESOURCE(resource_base_name)
を呼び出すことで実行されます。 resource_base_name
は、リソースを指定する.qrcファイルのベース名です。これはおそらくmain()またはアプリケーションの起動時に呼び出す必要があります。必要に応じて、プラグインが使用されなくなった場合、 Q_CLEANUP_RESOURCE()
を呼び出すことができます。
QT 4.5 リソースドキュメントの最後のセクションを参照してください。 Q_INIT_RESOURCE
のドキュメントも参照してください。
これはQT 4.5のLinuxバージョンで機能しました。
所属していません StackOverflow