web-dev-qa-db-ja.com

Qt-Creatorを使用してアプリケーションをデプロイする方法は?

単純なQtプロジェクトをHelloWorldのようにデプロイしようとしています。

正常にビルドでき、Qt-Creatorでも実行できます。ただし、共有ライブラリエラーが原因で、リリースフォルダでバイナリを直接実行できません。

そのため、qtcore.dllやqtgui.dllなどのいくつかの重要なライブラリをリリースフォルダーにコピーするだけですが、それでも実行できません。

簡単なQtプロジェクトをデプロイするにはどうすればよいですか?それを展開するための別のステップはありますか?

17
Brian

また、MINGWランタイムdll(mingwm10.dll)をデプロイする必要があります。このファイルは、Qt\2009.5\mingw\binディレクトリにあります。

また、アプリケーションがデバッグモードでコンパイルされているかリリースモードでコンパイルされているかにも注意してください。 helloworldタイプのアプリケーションとQtCreatorを使用してテストを行いました。 debugフォルダーに、libgcc_s_dw2-1.dllmingwm10.dllQtCored4.dll、およびQtGuid4.dllをコピーしました。

デバッグを表すdll名のdに注意してください:QtCored4.dll

Qt 4.6:Windowsでのアプリケーションのデプロイ を参照してください。 Qt 5については、 このページを確認してください。

19
Gregory Pakosz

Qt/mingw dllとの依存関係を持たせたくない場合は、ここで説明するようにqtを静的にコンパイルする必要があります: http://qt.nokia.com/doc/4.6/deployment-windows.html#static-linking

11

静的リンクを使用することもできます。次の行を.proファイルに追加するだけです。

QMAKE_LFLAGS += -static-libgcc

私は解決策を見つけここ、QTクリエーター2.2.0を使用してWinXPで正常にテストしました

2
Jan Turoň

依存関係ウォーカーを実行してみて( http://dependencywalker.com/ )、どのdllが欠落しているかを確認しますか?

通常、Qtのインストールでこれらのライブラリがパスに追加されるはずなので、これらのQtライブラリをローカルフォルダに移動する必要はありません。

1つの可能性は、デバッグをビルドし、Qtデバッグdllの名前が異なることです。

1
Will