クロスプラットフォームなGUI(だけじゃないけど)ライブラリであるところのQtをWindows上のVSで使えるようにするためのメモ。
まず前提条件(というか僕の作業環境)はこんなかんじです。
- Windows XP SP2
- Visual Studio 2005 (without SP1)
この環境でQt4の最新リリースであるQt 4.3.4をソースからビルドしてみることにします。
ところでQtは複数のライセンスがあって、ざっくりわけると主に個人とかがフリーソフトを開発するためにつかうオープンソースなGPL版と商用ソフトに利用可能な商用ライセンス版があります。ちなみに商用ライセンスはけっこう高いです。
で、ソースからビルドするわけですからまずはソースをゲットしなきゃなりません。おそらく個人で使うのに商用ライセンスを買う人はいないと思いますので、オープンソース版のソースを本家からゲットしてきます。
http://trolltech.com/developer/downloads/qt/windows
ここからqt-win-opensource-src-4.3.4.zipをDLして展開すると同名のフォルダが作成されてそのなかにファイルが展開されるのでとりあえずそのフォルダの名前をqtに変更しつつC:に置きます。若干乱暴な置き方なのでここらへんは自分の好みで配置しましょう。そうするとこんなファイル配置になるかと思います。
C: +qt +bin +demos (ry) +configure.exe +README (ry)
この先基本的にはコマンドプロンプトで作業するのですが、今回はVS2005向けにビルドするのですべてのプログラム->Microsoft Visual Studio 2005->Visual Studio ToolsにあるVisual Studio 2005 コマンドプロンプトを使います。このショートカットから起動することで最初からVS2005のコマンドラインツールへのパスが通った状態でコマンドプロンプトが利用できるからです。
で、こんな感じに打つ。
cd c:qt .configure.exe (ライセンスに同意してYを入力してエンター) nmake
コマンドライン的にはこれで完了です。簡単ですね。実際にはconfigureにもnmakeにもけっこう時間がかかります。
そして応用編。
configure.exeの実行時には指定可能なけっこう用意されています。詳細はconfigure.exe -hとかやれば表示されるので各自確認してください。たとえば、オプション無指定の場合にビルドされるのはデバッグ用のダイナミックライブラリなのですが、これをリリースビルドでスタティックリンク可能なものをつくるには、
configure.exe -release -static
とかやりましょう。スタティックなライブラリのほうが配布するときに楽なので僕は好きです。どうせ今のPCはHDDでっかいし回線も速いので。とはいえ、その判断は適切にする必要はありますが。
それからQtは複数のルックアンドフィールをサポートしています。ですが標準ではXPやVistaのルックアンドフィールは有効になっていないようなので有効にするには
configure.exe -qt-style-windowsxp -qt-style-windowsvista
とかやります。
応用編2
実はconfigure.exeの実行完了後はC:qtにVSのソリューションファイルができています。なのでこれをVSで開けばIDE上でビルドできます(たぶん)。nmakeだとシングルスレッドで処理されるので時間がかかるのですが、IDE上だと(たぶん)CPUの数に応じて並列ビルドしてくれるので処理時間が短縮されます。HDDが高速だと幸せだと思います。
しかし、どうやらconfigure.exe -fastで前処理をしておかないとソリューションファイル配下のプロジェクトのうちいくつかは名前が重複することでVSで開くときに重複しているプロジェクトは読まれないんですよね。仕様ですかね。-fastつけておけばライブラリしかビルドされないのでたぶん大丈夫だと思います。未確認ですが。
さて、こっから先の作業も書きたいのですが、実際のビルドが終わらないので今日はここで駄文終了。