QML(Qt)アプリケーションの配布方法(Windows編) ver Qt5

そろそろQt5がリリースされそうな頃合いで楽しみですね。
さて、Qt Quick2で作られたアプリを配布するときのパッケージ作成についてまとめました。
やること自体は以前の「QML(Qt)アプリケーションの配布方法(Windows編)」と同じですがDLLの構成が変わっています。


/// 今回のポイント ///
・必要なDLLを同梱する必要がある
・DLLの入手元はコンパイラを「MinGW」と「VisualC++」のどちらを使うかで変わる
・Qt Quickアプリケーションの場合は、qmlファイルも同梱する
Qtプラグインを使用していないつもりで必須なプラグインがある
QMLでインポートするモジュールはすべてDLLが必要


/// DLLの入手パス ///
Qt DLL : <Qt5Dir>\bin
Import Module : <Qt5Dir>\imports
Plugin : <Qt5Dir>\plugins

VisualStudio2008 : C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist
(x86用とかamd64用とかが保存されてますので適宜。。。)


/// DLLとQMLの配置場所 ///
基本的に実行ファイル(*.exe)と同じフォルダに配置します。
QMLファイルはビルドフォルダにできる「qml」フォルダを丸ごと実行ファイルと同じフォルダにコピーします。
 実行ファイル : <App>\*.exe
 必須DLL : <App>\*.dll
 Qtプラグイン : <App>\<qtplugins>\*.dll
 QMLモジュール : <App>\<qmlmodule>\*.dll
 QMLファイル : <App>\qml\<project name>\*.qml , *.js


/// コンパイラに依存して必要なDLL ///
・MinGW
 mingwm10.dll
 libgcc_s_dw2-1.dll
・VC++
 msvcr90.dll
 msvcp90.dll


/// QtQuick2として必要なDLL ///
・メイン
 QtCore5.dll
 QtGui5.dll
 QtNetwork5.dll
 QtQml5.dll
 QtQuick5.dll
 QtV85.dll
・インポートモジュール
 QtQuick.2\qmldir
 QtQuick.2\qtquick2plugin.dll
・プラグイン
 platforms\qminimal.dll
 platforms\windows.dll


/// 必要なDLLの確認方法 ///
Dependency Walker」というアプリを使用して確認します。
Dependency Walkerを実行して確認したい自分のアプリの実行ファイル(*.exe)を開きます。
不足しているDLLがあると印がつきますので不足しているDLLを実行ファイルと同じディレクトリに置いて開き直します。


/// Qtプラグインを使用している場合に必要なDLL ///
DBアクセスや画像処理、文字コード関連の処理などなど。
たくさんあるので幾つか例をピックアップします。
・画像関連
 imageformats\qgif4.dll
 imageformats\qico4.dll
 imageformats\qjpeg4.dll
 imageformats\qmng4.dll
 imageformats\qsvg4.dll
 imageformats\qtiff4.dll
・DBアクセス
 sqldrivers\qsqlite4.dll