Windows上でMicrosoft Visual C++ 2010/2008でQt SDKをビルドします。
VC2008、VC2010のいずれを使用する場合でも、まず、最新のサービスパックを適用しておきます。特にVC2010ではSP1にしておかないとコンパイルに失敗するという報告があるようです。また、Windows 7 SDKをインストールしておきます。
PerlとPythonの実行環境が必要です。ActivePerlとActivePythonをインストールしておきます。PerlとPythonのどちらが必要か、または両方必要かは確認していません。おそらくPythonが無いと、コンパイルの途中で失敗します。
コンパイルに先立って、環境変数 INCLUDEとLIBを設定しておきます。
64bit OSの場合、 C:\Program Files\ は、C:\Program Files (x86)\ である場合があります。必要に応じて読み替えてください。
set INCLUDE=C:\Program Files\Microsoft SDKs\Windows\v7.1\Include;%INCLUDE%
set LIB=C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib;%LIB%
set LIB=C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\x64;%LIB%
本家サイトからQt Creatorをダウンロードしてインストールします。 C:\Qt\qtcreator-3.x.x\bin に jom.exe があることを確認しておきます。
VC2008では、以降、フォルダ名msvc2010と説明している部分を、適宜msvc2008に読み替えてください。
Qtバージョン4系の最新版(執筆時点)の4.8.5をビルドします。
ダウンロードページから qt-everywhere-opensource-src-4.8.5.zip を取得します。
C:\に展開すると C:\qt-everywhere-opensource-src-4.8.5 が作成されます。
ソースコードを一部修正します。
C:\qt-everywhere-opensource-src-4.8.5\src\3rdparty\webkit\Source\WebCore\platform\DefaultLocalizationStrategy.cpp
全角の「“”」が含まれていて、コンパイルに失敗することがありますので、半角「"」に修正します。
325行 「“」→「\"」、 「”」→「\"」
327行 「“」→「\"」、 「”」→「\"」
次に、フォルダ名を変更します。筆者の場合は、 C:\Qt32-4.8.5-msvc2010 という名前に変更しました(必ずしもこのとおりである必要はありません)。64bit版も作成する場合は、同じものを C:\Qt64-4.8.5-msvc2010 としてコピーします。
スタートメニューの Microsoft Visual Studio 2010 → Visual Studio Tools → Visual Studio コマンド プロンプト (2010) を開きます。64ビット版をビルドする場合は、 Visual Studio x64 Win64 コマンド プロンプト (2010) を開きます。ソースフォルダに移動して、環境変数PATHとINCLUDEを設定してから、 configure -plugin-sql-odbc -debug-and-release を実行します。終わったらjomを実行します。
C:\Program Files\Microsoft Visual Studio 10.0\VC>cd \Qt32-4.8.5-msvc2010 C:\Qt32-4.8.5-msvc2010>path C:\Qt32-4.8.5-msvc2010\bin;%PATH% C:\Qt32-4.8.5-msvc2010>set INCLUDE=C:\Program Files\Microsoft SDKs\Windows\v7.1\Include;%INCLUDE% C:\Qt32-4.8.5-msvc2010>set LIB=C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib;%LIB% C:\Qt32-4.8.5-msvc2010>configure -plugin-sql-odbc -debug-and-release C:\Qt32-4.8.5-msvc2010>C:\Qt\qtcreator-3.0.1\bin\jom.exe
configureの最初で、オープンソース版にするか商用ライセンス版にするか聞かれますので、o [Enter]、y [Enter]を押します。
コンパイルには、PCの性能によっては2~5時間程度かかります。
Qtバージョン5系の最新版(執筆時点)の5.2.1をビルドします。
ダウンロードページから qt-everywhere-opensource-src-5.2.1.zip を取得します。
前述のバージョン4系にならって、展開したフォルダを C:\Qt32-5.2.1-msvc2010 や C:\Qt64-5.2.1-msvc2010 などに変更します。5.2.1にはDefaultLocalizationStrategy.cppはありませんので、修正の必要はありません。
スタートメニューの Visual Studio コマンド プロンプト (2010) を開きます。ソースフォルダに移動して、環境変数PATHとINCLUDEを設定してから、configure -plugin-sql-odbc -opengl desktopを実行します。終わったらjomを実行します。
PATHに追加するパスは、binではなくqtbase/binになっていることに注意してください。
C:\Qt32-5.2.1-msvc2010>path C:\Qt32-5.2.1-msvc2010\qtbase\bin;%PATH% C:\Qt32-5.2.1-msvc2010>set INCLUDE=C:\Program Files\Microsoft SDKs\Windows\v7.1\Include;%INCLUDE% C:\Qt32-5.2.1-msvc2010>set LIB=C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib;%LIB% C:\Qt32-5.2.1-msvc2010>configure -plugin-sql-odbc -opengl desktop
C:\Qt32-5.2.1-msvc2010>C:\Qt\qtcreator-3.0.1\bin\jom.exe
※コンパイル方法は基本的にはQt4と同じですが、configureの際の -debug-and-release はいらないようです。代わりに -opengl desktop を指定します。(詳細未確認)
筆者の都合により、データベース接続のためのODBCプラグインを有効にしていますが、不要であれば -plugin-sql-odbc は付けなくても結構です。
いくつかのサイトで、nmakeでビルド後に nmake cleanを実行して、不要なファイルを削除するよう書かれていますが、これを行うと、言語ファイルまで削除されて、ツール類が英語表示になってしまうことがあるようです。nmake cleanはおすすめしません。