Ubuntu14.04MSYS2とUbuntu14.04でパッケージマネージャーを使いQt5のインストール・動作確認方法を示す。introduction半年くらいクロスプラットホームなGUIのライブラリを調査した。重視したことは以下2点。スタンドアローンでビルドできるかWindowsでビルドできるかCまたはC++で動作するかスタンドアローンでビルドできるかどうかというのは,そのGUIライブラリを使ったプログラムを-staticオプションをつけてでコンパイルして,ライブラリがインストールされていない環境でも動作するかどうかということだ。build,singleなどと呼ばれることがある。スタティックビルドできなければ,見知らぬ誰かのPCでダブルクリックで動作せるのは不可能だ。Windowsでビルドできるかどうかというのは実務で使っていく上で重要だ。不満はあるが,OSのシェアは不自由なWindowsが圧倒的だ。実務ではWindows相手にやっていけないといけない。そのため実際に動作するWindowsでのスタティックビルド環境が重要だった。速度や汎用性を考えるとC/C++のどちらかでの動作が重要と感じた。そこで以下のクロスプラットホームなGUIライブラリを実際にWindowsでインストールしてスタティックビルドできるか試した。Tcl/TkGTK+wxWidgetsQtこの内成功したのはwxWidgetsとQtの2個だけだった。インストールはうまくいったが,Tcl/TkとGTK+はスタティックビルドがどうしてもうまくいかなかった。wxとQtを比較すると,利用実績と将来性を考えるとQtに軍配があがった。wxはライセンスが緩く決して悪いとは思わないが,以下の欠点があった。対応プラットホームでスマホ(Android,iOS)を未サポート情報が少ないこのことから,Qtを使えるようになりたいと考えた。そこで,まずビルド環境を用意した。InstallQtは非常に大きなライブラリとなっている。そのためソースコードからインストールするのはたいへんと判断し,素直にパッケージマネージャーでのインストールを試みた。試した環境は以下である。MSYS2(64bit)WindowsではMSYS2を使った。Ubuntuでは以下のコマンドでインストールできた。qt5-defaultMSYS2では以下のコマンドで通常版とstatic版の両方をインストールした。mingw-w64-x86_64-qt5-staticQtはライセンスの都合上,staticと通常版は別扱いとなっている。static版は以下のディレクトリにインストールされる。/mingw64/qt5-static/ビルド手順Qtでプログラムを作るには以下の手順をとる。Qtと表示されるプログラムをコンパイルして動作とQtアプリのビルド手順を示す。サンプルコードには日本Qtユーザー会のトップページに示されているものを使う。Qtと表示されるプログラムがビルド・実行される。-projectを実行したら作成されるhello.proファイルにはコンパイルの設定をできる。Qtの最新バージョンはQt5となっているが,情報としてはQt4のものが多い。Qt4のコードはそのままではQt5では動作しない。そのため.proファイルに以下の記述を追記してQt4のコードでもQt5で動作するようにしておく。widgetsスタティックビルドMSYS2でQtをスタティックビルドするときは.proファイルにqmakeを実行する時にstatic版を使う。hello.proこれによりMakefileにstatic版のライブラリが指定されスタティックビルドできる。コンパルしたプログラムのサイズの圧縮Qtをスタティックでビルドすると全てのライブラリが埋め込まれるためそのままだとファイルサイズが膨大になり,コンパイルにも時間がかかる。いくらなんでもファイルサイズが大きすぎる。ファイルサイズを圧縮するには以下の方法が使える。最初の2項目は内容としては同一であり,どちらか片方だけが有効である。どちらもバイナリのリンク情報を削除している。コンパイルオプションで行うとコンパイル時間も短くなる。そのためデバッグなどの理由がなければ以下のようにmake実行時にオプションを指定したほうがよいだろう。-s"上記のmakeのオプションでMakefile.Debugで指定されているコンパイラの指定を上書きしている。stripコマンドは既にコンパイルされたプログラムからリンク情報を削除する。以下のようにして使う。executables)は実行ファイルの圧縮ソフトとのことだ。これを使うことでバイナリを更に圧縮できる。パッケージマネージャーを使えば簡単にインストールできる。MSYS2使い方も簡単で,以下のように圧縮したい実行ファイルに対して実行するだけだ。まとめUbuntuとWindows(MSYS2)でパッケージマネージャーを使いQt5をインストールした。Qtアプリのビルド手順をまとめた。簡単なプログラムで実際に手順を示した。Qtアプリのビルド時のポイントを説明した。Qt4との互換性staticビルド時のコマンドの選択Qtアプリのファイルサイズの圧縮Qtは非常に強力なライブラリだ。Qtが使いこなせればこのさきもうまくやっていける。QMLやQtCreatorなどわからないことだらけだが,調査や試行して使いこなせるようにしていく。コメントをキャンセルメールアドレスが公開されることはありません。