Qtビルド

最終更新:2013年06月11日 (火) 17時40分31秒

Qtのビルドメモです.現在,OpenCVビルドのためのビルド方法となっています.デモ・Qtを使ったプログラムのためのビルドになっているかわかりません.

Note:

  • VisualStudio2012導入により,msvc2010でコンパイルエラー → 解決
  • 32bit nmake 成功.デモはWebkit,OpenGL等のdll不足により動かず.ビルドしたい.
  • 64bit ビルド時に,マルチコアビルド試してみたい.

ビルド

ソースのダウンロード

ソースを.zipなどでダウンロードします.
展開先のフォルダは次がおすすめです.どちらでビルドしたか忘れられません.
また,Tools内にOpenCVなどをまとめると,移動・バックアップにも便利です.
c:\Tools\Qt\Qt4.8.4x86_msvc2010
c:\Tools\Qt\Qt4.8.4x64_msvc2010

ビルド方法

参考元は以下3つです.
※ 基本的な流れは公式に沿います(ソース付属のINSTALL>リンク先).参考先によると,基本的な流れに以下を+するといいのでしょうか.

手順 1. ソースの訂正2箇所(msvcとのエンコードの問題?訂正しないとコンパイルエラー?)

次のファイルをメモ帳か何かで開き,文字を置換します.
Qtソースフォルダ\src\3rdparty\webkit\Source\WebCore\platform\DefaultLocalizationStrategy.cpp
325行目と327行目 全角文字“, ”→半角文字 ' もしくは \" と置換.

手順 2. msvcコマンドプロンプト

msvc2008/2010いずれかのコマンドプロンプトを開き,カレントディレクトリを移動します.
cd Qtのソースフォルダパス

64bitでコンパイルする際は以下を実行してください.
※ Express版の方ははじめ,64bitコンパイルできません.<s>こちら</s>を参照してください
vcvars64.bat.

手順 3. コンフィグ時のオプション

下記いずれかのオプションでconfigureしてください.

標準(?)
scanfの警告対策:-D _CRT_SECURE_NO_WARNINGS
コンパイルするのmsvcバージョン(適宜変えて下さい):-platform win32-msvc2010
MSVC2008の場合:configure -debug-and-release -D _CRT_SECURE_NO_WARNINGS -platform win32-msvc2008
MSVC2010の場合:configure -debug-and-release -D _CRT_SECURE_NO_WARNINGS -platform win32-msvc2010

OpenCV用にビルドする際は以下のようにすることで,OpenCVのビルドに不要なQtビルドの一部を省くことができます.※opencvをdebugでビルドする際は,Qtのdebugも必要なのかもしれません.
リリース版のみビルド:-release
-no-:省く対象
MSVC2008の場合:configure.exe -debug-and-release -D _CRT_SECURE_NO_WARNINGS -platform win32-msvc2008 -no-webkit -no-phonon -no-phonon-backend -no-script -no-scripttools -no-qt3support -no-multimedia -no-ltcg
MSVC2010の場合:configure.exe -debug-and-release -D _CRT_SECURE_NO_WARNINGS -platform win32-msvc2010 -no-webkit -no-phonon -no-phonon-backend -no-script -no-scripttools -no-qt3support -no-multimedia -no-ltcg

手順 4.コンパイル

下記どちらかのコンパイルを実行してください.

マルチコアでQtをビルドする場合,あらかじめQtCreatorをインストールしておきます.
QtCreator binまでのパス\jom.exe -j 4

通常のコンパイルを行う場合(遅い)
nmake

※ マルチコアビルドは64bitコンパイル時に試します.

ほか

Qtのビルドはmsvc2008/2010どちらかで行います.
ビルド後,Qtを使う際にどちらのバージョンを使ってもいいのであれば,
どちらでもよいのですが...確かめたいところです.

どちらにしても,OpenCVのビルドが左右されることはないと思っていますが.
ないとは思いますが,左右されるとすれば,Qtの開発を行う際かな、と思います.
けれど,OpenCVのplatformはvc09/10で分かれていますが...




最終更新:2013年06月11日 17:40