リリース方法
QtCreatorでアプリケーションを作った時にリリースする方法を紹介します。
QtCreatorはデフォルトでビルドモードになっているのでリリースモードにするにはメニューの「ビルド」から「ビルド/実行キットセレクタを開く」を選ぶとreleaseかdebugを選択できるようになります。
リリースモードにしたら次に目的のプロジェクトを「qmake実行」でビルドし、「実行」してみてください。たぶんアプリケーションは実行できると思います。
しかし、実際にリリースされたアプリケーションのあるフォルダでリリースされた実行ファイルをクリックしても「xxx.dllファイルがないためプログラムを開始できません。」などのエラーがでます。
そこでどのDLLファイルが必要かコマンドラインで調べる必要があります。もし、mingwがインストールされているなら以下のコマンドを打ちます。
objdump -p myapp.exe | grep -i .dll
すると必要なDLLファイルの一覧がでるので C:\Qt\x.x.x\mingwxx_xx\bin (x.x.xやxx_xxはQtやmingwのバージョン)などのフォルダから必要なDLLファイルを実行ファイルのあるフォルダにコピーしてください。
それで実行してもエラーが出る場合は、エラーメッセージに従って必要なDLLを1つ1つコピーしていくしかありません。
ちなみにQt5.1.1で必要だったDLLファイルは次のようになりました。
- icudt51.dll
- icuin51.dll
- icuuc51.dll
- libgcc_s_dw2-1.dll
- libstdc++-6.dll
- libwinpthread-1.dll
- Qt5Core.dll
- Qt5Gui.dll
- Qt5Widgets.dll
環境や使う機能により必要なDLLファイルは変わります。
例えばSVG機能を使いたい場合はQt5Svg.dllをコピーして追加します。
どのDLLが必要か調べる方法
エラーメッセージが出るたびにDLLファイルをコピーするのは面倒です
そこで「Dependency Walker」というツールがどのDLLファイルが必要なのか楽に調べることができるのでお勧めです。
このソフトは次のURLからダウンロードできます。
http://www.dependencywalker.com/ダウンロードした後はフォルダを展開すればすぐに使うことができます。
このソフトでは次のように左側に必要なDLLファイル一覧、右側にどのDLLファイルで使われているプロシージャ(関数)の情報が表示されています。
もし必要なDLLファイルが用意されていない場合はそのファイル名が赤色で表示されるのでそれを参考にして必要なDLLをコピーして貼り付ければOKです。
また、プログラム側でDLLで定義されていないのに使用されているプロシージャ名は赤色で表示されるのでそれもエラーが出る原因を探るのに役立つと思います。