よく使うライブラリのビルド/インストール方法など
freeglut†
GLUT代替ライブラリ.
- ビルド
- ダウンロードしたファイルを解凍
- (2.8.1以前) 解凍したフォルダのVisualStudio/2012/freeglut.slnがVS2012用のソリューションファイル.freeglut.slnを開いてビルドする.スタティックビルドの場合はプロジェクト構成で*_Staticというのを選択する.
- (3.0.0以降) CMakeをインストールし,CMake(GUI)で"Where is the source code"にfreeglutを解凍したフォルダ(srcフォルダではないので注意),"Where to build the binaries"にプロジェクトを作成するフォルダへのパスを入力し,"Configure"→ビルドオプション指定→"Generate"でプロジェクトを作成,ソリューションファイルを開いてビルドする.
GLEW†
OpenGL拡張をロードするライブラリ
- ビルド
- ダウンロードしたファイルを解凍.
- 解凍したフォルダの build\vc10 に glew.sln というファイルがあるので,これをVisual Studio 2012(以下VS)で開く.VS2013の場合はbuild\vc12を使う.
- プロジェクトの構成を選択して,ビルドする.プロジェクトの構成には,Debug, Debug MX, Release, Release MXがある.通常はReleaseを選んでおけばよい.MXがついた構成はMultiple Rendering Contextsをサポートさせたい場合に用いる.
CUDA†
汎用計算をGPUで行う(GPGPU)ためのアーキテクチャCUDAのためのライブラリ.
- ダウンロード
NVIDIAのダウンロードページ
からDeveloper Driver,CUDA Toolkit,SDK(CUDA Tools SDK, GPU Computing SDK code samples)をダウンロードする.
必要に応じてリファレンスやプログラミングガイドなどのPDFもダウンロードできる.
64bit版と32bit版があるが,もし64bit OS上で32bitアプリケーションを開発している場合は,
ドライバは64bit,ツールキット,SDKは32bitをインストールすればよい.64bit版の開発も考えている場合は,
両方インストールする(ドライバはのぞく)か,「x64版CUDA上で32bitアプリケーションのビルド」を参照.
CUDAツールキットにはCUDAプログラムをコンパイルするnvccやアプリケーション作成のための,
ヘッダファイル,ライブラリなどが含まれる.
アプリケーション開発にはツールキットのみでも大丈夫だが,
SDKにはたくさんのサンプルが含まれているのでインストールすることをお勧めする.
- ツールキットのインストール
ツールキットをインストールする.ファイル名は,
cudatoolkit_(バージョン番号)_(対応OS)_(32か64).msi
など.デフォルトのインストール先は"C:\Program Files (x86)\NVIDIA GPU Computing Toolkit\CUDA" (32bitの場合).
インストール後,環境変数を適用するために一度ロブオフしておく.
ちなみに設定される環境変数(CUDA4.0, 32ビットの場合)は,
CUDA_PATH=C:\Program Files (x86)\NVIDIA GPU Computing Toolkit\CUDA\v4.0\
CUDA_PATH_V4_0=C:\Program Files (x86)\NVIDIA GPU Computing Toolkit\CUDA\v4.0\
CUDA_BIN_PATH=%CUDA_PATH%\bin
CUDA_INC_PATH=%CUDA_PATH%\include
CUDA_LIB_PATH=%CUDA_PATH%\lib\Win32
- (インストールの確認)
インストールの確認のために,コマンドプロンプトから"nvcc -V"を実行してみる.
細かな部分は環境やバージョンによって異なるが,だいたい以下のようなメッセージが出ればOK.
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2011 NVIDIA Corporation
Built on Fri_May_13_02:42:40_PDT_2011
Cuda compilation tools, release 4.0, V0.2.1221
また,SDKのサンプルプログラムを動かしてみる.
サンプルプログラムの実行ファイルは,
[SDKインストールフォルダ]\C\bin\win32\Release
最初に実行するのは,bandwidthTestがお勧めのよう.
Visual Studio用のソリューションファイルは,
[SDKインストールフォルダ]\C\src\Release.sln
数値計算†
blitzwave†
ウェーブレット変換ライブラリ.
blitz++をインストール済みの場合は1-5をスキップ.
- blitz++をダウンロード(blitz-0.9.tar.gzなど),解凍する.
- blitz++を解凍したフォルダ($BLITZ_HOMEとする)内のBlitz-VS.NET.zipを解凍する($BLITZ_HOMEに直接解凍.slnファイルなどが$BLITZ_HOMEに置かれるようにする).
- Blitz-Library.slnをVS2005で開く.変換ウィザードが出てきたらそのまま完了を押せばよい.
- Debug, Releaseでビルドする.-> 正常に完了していれば,libフォルダにblitz.lib, blitz_d.libができている.動作確認したいときは,Blitz-Examples.slnを試す.
- VS2005 or VSプロジェクトで$BLITZ_HOMEフォルダをインクルードフォルダに,$BLITZ_HOME\libをライブラリフォルダに設定,もしくは,
$BLITZ_HOME\blitzフォルダをインクルードできる場所に,blitz.lib, blitz_d.libを現在のライブラリフォルダにコピー.
- blitzwaveをダウンロード(blitzwave-0.7.1.tar.gzなど),解凍する(解凍フォルダを$BLITZWAVE_HOMEとする).
- 新規プロジェクトで構成の種類が"スタティックライブラリ(.lib)"となるように構成("空のプロジェクト"で作成後,プロジェクト設定で構成の種類を変えるなどでよい).プロジェクト名はここでは blitzwave とする.
- プロジェクトに$BLITZWAVE_HOME\srcの中の*-test.cxx以外の*.h, *.cxxを追加(arrayTools.h, arrayTools.cxx, Wavelet.h, Wavelet.cxx, WaveletDecomp.h, WaveletDecomp.cxx).
- WindowsのVSでは<sys/time.h>を使えないので,<time.h>のclock()で置き換える.
arrayTools.cxx内の
#include <sys/time.h>
をコメントアウトして,
#include <time.h>
を追加.そのすぐしたにある関数,
double runTime() {
timeval t;
gettimeofday(&t, 0);
return double(t.tv_sec) + double(t.tv_usec)/double(1000000);
}
をコメントアウトして,
double runTime() {
clock_t t;
t = clock();
return (double)(t/CLOCKS_PER_SEC);
}
を追加.clock()は1/100秒程度の精度しかないようなので,どこかで問題が出るかもしれない.
- Debug, Releaseでビルドする.動作確認したいときは,arrayTools-test.cxx,Wavelet-test.cxx,WaveletDecomp-test.cxx などを試すとよい
(arrayTools-test.cxxは<sys/time.h>を使っているので,9と同じような修正が必要).
- blitzwave.libをライブラリフォルダへ,arrayTools.h, Wavelet.h, WaveletDecomp.hをインクルードフォルダにコピーする.
fftw†
FFT(高速フーリエ変換)ライブラリ.
- http://www.fftw.org/install/windows.html から fftw-3.2.2.pl1-dll32.zip をダウンロードし,
適当な場所に解凍する.
- コマンドプロンプトでVC++の環境変数をセットする(VC++のbinフォルダのvcvars32.batをコマンドラインで実行するか,
スタートメニューから Visual Studio 2005 コマンド プロンプト などを起動).
1で解凍したフォルダに移動し,
lib /def:libfftw3-3.def
lib /def:libfftw3f-3.def
lib /def:libfftw3l-3.def
を実行する.
- プロジェクトのインクルードフォルダに
fftw3.h
ライブラリフォルダに
libfftw3-3.lib
libfftw3f-3.lib
libfftw3l-3.lib
実行フォルダに
libfftw3-3.dll
libfftw3f-3.dll
libfftw3l-3.dll
を入れておく.
それぞれ,
- libfftw3-3 :単精度
- libfftw3f-3 :倍精度
- libfftw3l-3 :ロング精度
である.
libpng†
PNGファイルを扱うためのライブラリ.要zlib.
- ダウンロード : libpngからlibpng-*.tar.gz
- ビルド
- ダウンロードしたファイルを解凍する.
- projects/vstudioフォルダにVS2010用のソリューションファイル vstudio.sln がある.
vstudio.sln を開く前に同フォルダのzlib.propsをテキストエディタで開き,
<ZLibSrcDir> ... </ZLibSrcDir>
にzlibのソースコードフォルダを指定する.相対パスを使う場合はプロジェクトファイル(*.vcxproj)からでなければならない
(slnのあるフォルダよりさらに1階層下).
- vstudio.sln を開いて(ダブルクリックで開けない場合は,Visual Studio 2010からファイルを指定して開く),Release, Release Libraryでビルド.
- 生成されるファイル(バージョンや環境に依存)
ビルド構成 | フォルダ | ファイル | 備考 |
Release | projects/vstudio/Release | libpng15.dll, libpng15.lib, zlib.lib | |
Release Library | projects/vstudio/Release Library | libpng15.lib, zlib.lib | スタティックリンク |
libjpeg†
JPEGファイルを扱うためのライブラリ.
- ビルド : nmakeでVC2010プロジェクトファイルを生成
- ダウンロードしたファイルを解凍
- Visual Studio コマンドプロンプトを開いて,libjpegのフォルダに移動
- 以下のコマンドを実行
*1
nmake /f makefile.vc setup-v10
Visual Studio 2012だとwin32.makがないというエラーがでる(理由と対処法はこちら).
VS2012 Update1でwin32.makはインストールされてるのだがどうもパスは通してくれないみたいなので上記コマンドを打つ前に以下のコマンドを実行しておく.
SET Include=%Include%;"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include"
C:\Program Files (x86)\〜の部分は自分の環境に合わせて変えること.
- 生成されたjpeg.slnを開いてコンパイル(必要に応じてビルドオプションを設定)
*2
- Releaseフォルダにjpeg.libが生成されるので読み込ませたいプロジェクトから見える位置にコピー
- ビルド : nmakeで直接生成
- ダウンロードしたファイルを解凍
- 解凍したフォルダの jconfig.vc を jconfig.h に名前変更(jconfig.vcはVisual C++用のjconfig.hファイル)
- Visual Studio コマンドプロンプト
*3
を開いて,libjpegのフォルダに移動
- 以下のコマンドを実行
nmake nodebug=1 /f makefile.vc clean all
デバッグ情報を含めたい場合はnodebug=1を削除.
ランタイムライブラリの設定などは,makefile.vcの最初の法のCFLAGSに設定を追加する.
マルチスレッド : /MT
マルチスレッド DLL : /MD
最適化の設定は以下
最大限の最適化 : /Ox
インライン関数の展開 拡張可能な関数すべて : /Ob2
組み込み関数の使用 : /Oi
実行速度優先 : /Ot, ファイルサイズ優先 : /Os
フレームポインターなし : /Oy
プログラム全体の最適化 : /GL
SSE2有効 : /arch:SSE2
- libjpegのフォルダにlibjpeg.libが生成されるので読み込ませたいプロジェクトから見える位置にコピー
libwebp†
WebPファイルを扱うためのライブラリ.
- ダウンロード
Google codeのWebPのページのDownloadから
ソースコード(libwebp-*.tar.gz)をダウンロード.
ちなみにビルド済みのライブラリ(libwebp-*-windows-x86.zip)もあるので,ビルドするのが面倒な場合はこちらを使う.
- ビルド
- ダウンロードしたファイルを解凍.解凍したフォルダを$WEBPとする.
- Visual Studio コマンドプロンプトを立ち上げる.
スタートメニュー -> Microsoft Visual Studio 2010 -> Visual Studio Tools -> Visual Studio コマンド プロンプト (2010)
- $WEBPに移動し,nmakeを使ってビルドする.
nmakeでの構文は,
nmake /f Makefile.vc [CFG=<config>] [OBJDIR=<path>] [RTLIBCFG=<rtlib>] [<target>]
である.それぞれの引数は,
- config : ビルドの種類
release-static, debug-static, release-dynamic, debug-dynamic
*-staticだとlibファイルのみ,*-dynamicだとlibとdllが作られる.
- rtlib : ランタイムライブラリ
static, dynamic
staticだと "/MT" or "/MTd",dynamicだと "/MD" or "/MDd" がコンパイルオプションとして指定される.
- path : objや生成されたlib,exeを出力するフォルダ.
- target : ビルド内容
clean, experimental
何も書かなければビルドが実行される.
- 例.ランタイムライブラリをマルチスレッドDLLにして,dllなしでビルド.
nmake /f Makefile.vc CFG=release-static RTLIBCFG=dynamic OBJDIR=output
- ビルドが成功すれば,OBJDIRに指定したフォルダ内にrelease-static/x86などのフォルダができ,
その中のlib,binフォルダにlib,dllファイルが生成される.
OpenCV†
Computer Vision ライブラリ.OpenCV 2.3とVisual Studio 2010でのビルド方法.
- 必要なもの
- 必須なもの
- C/C++コンパイラ(ここではVisual Studio 2010)
- CMake 2.6以降
- 必須ではないが一部の機能を使用するために必要なもの
- Python 2.6.x もしくは 2.7.x : Pythonラッパをビルドするのに必要.
- Intel TBB 2.2以降 :
並列処理コードを有効にするために必要(OpenCVはOpenMPを用いない).
- Qt 4.6以降 : マルチプラットフォームGUIライブラリ.
HighGUIのバックエンドにQtを使いたい場合に必要.
- Intel IPP 5.1〜6.1(7でもたぶん大丈夫) : Intelコンパイラに付属のマルチメディア処理ライブラリ.インテル製CPUに最適化されている and 並列化に対応しているため対応する環境ならば高速に処理できる.
色変換,Haar学習,DFTなどを高速化できる.ただし,商用(Linux用で研究用なら無償?)
- NVIDIA CUDA : NVIDIAのGPUを用いた汎用計算用アーキテクチャ.
CUDA for C/C++をインストールすることでOpenCVをNVIDIA GPU環境下で高速化できる.
- ビルド
- OpenCV-2.*.*-win-src.zipをダウンロードして解凍.解凍したフォルダを$OPENCVとする.
- CMakeの最新版をダウンロードしてインストール
(cmake-2.*.*-win32-x86.exe).
コマンドプロンプトからcmakeを用いたい場合は,
CMakeのパス(C:\Program Files (x86)\CMake 2.8\bin)を環境変数Pathに追加する
(インストールプロセスの途中で追加するかどうか選択するダイアログがある).
パスが通っているかどうかは,コマンドプロンプトから,
cmake --version
で
cmake version 2.8.5
などと出ればOK.
- cmakeを実行したときにできるVSプロジェクトファイルなどを保存するテンポラリフォルダを作成.
ここでは,$OPENCV/buildとする.
- スタートメニューからCMake (cmake-gui)を実行.
- CMakeのウィンドウで"Where is the source code"に$OPENCVのパス,"Where to build the binaries"に$OPENCV/buildのパスを設定.
- Configureボタンをクリックするとコンパイラを選ぶウィンドウが現れる.
"Specify the generator for this project"のところで
"Visual Studio 10" (64bitの場合は"Visual Studio Win64")を選択する.
- ビルドオプション一覧が出るので必要に応じて編集.Generateする前にConfigureをクリックして整合性をチェックする.
以下は私の設定メモ(スタティックビルドの場合)
- BUILD_SHARED_LIBSをアンチェック -> BUILD_WITH_STATIC_CRTが現れるのでチェックを入れる
- BUILD_EXAMPLESにチェック
- Generateをクリックすると$OPENCV/buildにVisual Studio 2010でのビルドファイルが生成されるので,
Visual Studio 2010で$OPENCV/build/OpenCV.slnを開いてDebug,Releaseでビルド.
全てのプロジェクトをビルドしたい場合はALL_BUILDプロジェクトをビルドすればよい.
- インクルードファイルとライブラリファイル
インクルードディレクトリ
$OPENCV/include
$OPENCV/modulesの各includeフォルダ
ライブラリディレクトリ
$OPENCV/build/lib
ライブラリファイル
opencv_core230.lib
opencv_flann230.lib
opencv_imgproc230.lib
opencv_highgui230.lib
opencv_ml230.lib
opencv_video230.lib
opencv_objdetect230.lib
opencv_features2d230.lib
opencv_calib3d230.lib
opencv_legacy230.lib
opencv_contrib230.lib
zlib.lib
libjpeg.lib
libpng.lib
libtiff.lib
libjasper.lib
comctl32.lib
vfw32.lib
videoInput†
- 事前準備
対応するバージョンのPlatform SDK, DirectX, DirectShowをインストールする.
- ビルド
- videoInputをダウンロード(videoInput0.1995.zip)して解凍.
- 解凍したフォルダ内の videoInputSrcAndDemos/VC2008-videoInputcompileAsLib にVC2008用のプロジェクト,ソリューションファイルがあるのでVC2010で開いて変換.
- プロジェクトのプロパティ -> 構成プロパティ -> VC++ディレクトリ に以下を追加(Windows 7 x64の場合).
- 実行可能ファイルディレクトリ
C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Bin
C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (February 2005)\Utilities\Bin\x86
- インクルードディレクトリ
C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include
C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include\mfc
C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include\atl
C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (February 2005)\Include
C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (February 2005)\Extras\DirectShow\Include
C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (February 2005)\Extras\DirectShow\Samples\C++\DirectShow\BaseClasses
- ライブラリディレクトリ
C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib
C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (February 2005)\Lib\x86
C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (February 2005)\Extras\DirectShow\Lib\x86
- その他プロジェクトの設定を必要に応じて変更してビルドする.
ビルドするとctlutil.hのエラーC4430か,winnt.hのリンクエラーC2146が出るかもしれない.
これはオペレータ関数の返値の問題なので,
operator=(LONG);
の部分を
COARefTime& operator=(LONG);
に変更する.
(また,intrin.hで__MACHINEIの多重定義エラーが出たら該当箇所をコメントアウトする).
- 再度ビルド.
その他†
zlib†
zipやgzipに使われている圧縮アルゴリズムをまとめたライブラリ.libpngはこれを使っている.
- ビルド
1.2.4まではprojectsフォルダにVC6.0プロジェクトがあり,それを新しいVS用に変換して使えば良かったが,
1.2.5からはprojectsフォルダ自体がない模様.解決策は以下(2つ目は試していない).
- libpngではzlibも一緒にビルドしてくれるのでこれを使う.
- 1.2.4までのソースコードをダウンロード,解答して,projectsフォルダだけコピーする.
- zipファイルも扱いたいならば,minizip-enhanced zlibをビルドする.
- Visual Studio コマンドプロンプトでcontrib/masmx86に移動して,bld_ml32.batを実行.
- VS2010ならcontrib/vstudio/vc10/zlibvc.sln, VS2008ならcontrib/vstudio/vc9/zlibvc.sln を開いてビルド.
- zlibwapi.dll, zlibwapi.libとzlibstat.libがcontrib/vstudio/vc*/x86/Zlib*Releaseフォルダが生成される
- ヘッダファイル : 解凍したフォルダ直下の
zlib.h, zconf.h
boost†
Visual C++用のバイナリがboostproで配布されている(要登録).
自身の環境でビルドしたい場合の手順は以下
(詳しくは,Getting Startedを参照).
- boostのページから最新のboostライブラリをダウンロードする.
中央のDOWNLOADSのところから最新版のリンクをクリックし,boost_1_57_0.zipなどをダウンロードして解凍する.
解凍先フォルダを$BOOSTとする.
[ver1.5?以降(バージョンはちゃんと確かめていない)]
- boostではビルドするためのBoost.Buildシステムを構築するためのバッチファイルbootstrapが含まれているので,これを実行する.
スタートメニューからVisual Studioコマンドプロンプト
(VS2012ならMicrosoft Visual Studio 2012 -> Visual Studio Tools -> VS2012 の開発者コマンド プロンプト)
を立ち上げ,$BOOSTフォルダに移動し,以下のコマンドを実行すr.
bootstrap
- Boost.Buildシステムが構築されたら以下のコマンドを実行
.\b2
ビルドオプションはb2 --helpで確認できる.例えばx64,multi-threadingで4スレッドでビルドの場合ならば,
.\b2 threading=multi variant=debug,release address-model=64 -j 4
となる.static,sharedはlink,runtime-linkオプション,作成されたライブラリファイルを置くフォルダ指定には--stagedirオプションを用いる.
[ver1.49?以前]
- bjam.exeを準備する.boostのページからビルド済みバイナリを落としてくるか,
自分で環境に合わせてビルドする.ビルドの仕方は以下.
$BOOST\tools\jam\src\build.bat を実行する. bjamのソースコード(boost-jam-3.1.18.zipなど)をダウンロード解凍する.解凍したフォルダにあるbuild.batを実行する.何も指定しなければ自動で環境を判別する.環境を選択する場合は,コマンドプロンプトから,
build.bat vc10
などとする.vc10はVS2010, vc8にするとVS2005, vc9にするとVS2008.その他のtoolsetはBuilding BJamを参照.
- $BOOST\tools\jam\src\bin.ntx86\ に環境に合わせたbjam.exeができるので,これを$BOOSTかPATHが通っているところに移動.
- コマンドプロンプトで$BOOSTに移動して,bootstrap.batを実行.
bootstrap.bat
- bjam.exeを実行する.オプションの例は以下.
bjam.exe --toolset=msvc-10.0 --prefix=C:\usr\boost_1_45 --build-type=complete link=static release install
オプションとして,
- --toolset=msvc-10.0 : VS2010用,VS2005の場合はmsvc-8.0,VS2008の場合はmsvc-9.0
- --prefix=C:\usr\boost_1_45 : インストール先.インクルードファイルとライブラリファイル(*.lib)などが置かれる.
- --build-type=complete : 完全ビルド.デフォルトではminimalになっている.
- link=static : スタティックリンクを指定(dllなし).共有リンクの場合はsharedを指定,両方指定(link=static,shared)も可
- release : リリースビルド.デバッグビルドの場合はdebugを指定する.
- install : ビルドしたファイル(*.dll, *.libなど)をprefixで指定したフォルダに移動する.
を指定している.他のオプションの詳しい説明は bjam.exe --help で参照.ビルドは環境にもよるが結構時間がかかるので注意.
- prefixオプションで指定したところにinclude\boost-1_45, libフォルダができているので,それぞれインクルードパス,ライブラリパスに追加するなどする.
ODE†
物理シミュレーションエンジン.
- ダウンロード
ODE Download(SourceForge)から,Windows用の ode-(バージョン番号).zip をダウンロードして,適当な解凍ソフトで解凍する.解凍してできたフォルダ(ode-*)を適当なところに置く.ここでは置いたフォルダのパスを $ODE と表現する.
- 倍精度
0.10.*以降では,上記のプロジェクト構成で*Double*のものを用いると倍精度でビルドされる.
それ以前のバージョンでは,
ODE のライブラリは標準では単精度(float)となっているが,ビルド時に倍精度(double)に変更可能.$ODE\include\ode\config.h 内の最初のほうにある
#define dSINGLE 1
を
#define dDOUBLE 1
で置き換えてから,ライブラリをビルドしなおす.
wxWidgets†
GUIツールキット.
- ダウンロードページ(SourceForge)から
プラットフォームにあわせたファイル(WindowsならwxWidget-*.*.*.zipもしくはwxMSW-*.*.*-Setup.exe)をダウンロードして,
解凍,もしくは,インストールする.以降,解凍先フォルダ,または,インストール先フォルダを$(WX_HOME)とする.
- $(WX_HOME)/build/mswフォルダにVisual Studio各バージョンごとのソリューションファイルが置かれているので,
環境に合ったものを開く(2003ならwx_vc7.sln, 2005ならwx_vc8.sln, 2008ならwx_vc9.sln).
- OpenGLキャンパスを使いたいならば,coreもしくはbaseプロジェクトのSetup Headers内の「setup.h」の
#define wxUSE_GLCANVAS が 1 になっていることを確認する.
- スタティックビルドにしたいならば,全てのプロジェクトを選択して,プロジェクトのプロパティで
"C/C++" -> "コード生成" -> "ランタイム ライブラリ"を"マルチスレッド" or "マルチスレッド デバッグ"にする.
- "ビルド" -> "ソリューションのビルド" で全てのプロジェクトをビルドする.
- 正常にビルドできたら,$(WX_HOME)/lib/vc_libにライブラリファイルと「setup.h」を格納したフォルダができている.
- $(WX_HOME)/samplesにサンプルソースがたくさんあるのでどれか開いてみてビルドできるか確かめる.例えば,"controls"はさまざまなGUIウィジット
をタブで切り替えられるサンプルである.
- $(WX_HOME)/samples直下にsamples.dswはあるが,slnファイルはない.dsw(Visual Studio 6.0以前に用いられていたワークスペースファイル)
を開いて変換しても良いが,各サンプルフォルダにはVisual Studio各バージョン用のプロジェクトファイルがあるので,そちらを開いた方がよいかもしれない.
- もし,ライブラリ作成でスタティックビルドにしたならば,サンプルも同様にすること.
FLTK†
軽量なGUIツールキット
- ダウンロード
ここからfltk-1.3.*-source.tar.gzをダウンロード.
- ビルド
- ダウンロードしたファイルを解凍.
- 解凍したフォルダのideフォルダにWindows,MacのIDE用のファイルがある.ここではVisual Studio 2010でビルドする.
ソリューションファイル ide\VisualC2010\fltk.sln をVS2010で開く
- 必要に応じてプロジェクトの設定などを編集し,ビルドする.
- インストール
- インクルードファイル : 解凍フォルダ直下の"FL"フォルダをフォルダごとインクルードディレクトリに.
- ライブラリファイル : Releaseの場合,libフォルダに以下のライブラリファイルが生成される.
fltk.lib, fltkforms.lib, fltkgl.lib, fltkimages.lib, fltkjpeg.lib, fltkpng.lib, fltkzlib.lib
Debugの場合は名前の最後に"d"が付く.
OpenVDB†
https://nidclip.wordpress.com/2014/02/25/compiling-openvdb-the-openvdb-viewer-on-windows-7/
の手順にVisual Studio 2012でビルドしたときに躓いたところのメモをいくつか追加したもの.Visual Studio 2012でのビルドを前提としている.
- OpenVDB本体ビルドのために必要なライブラリのビルド
OpenVDBをビルドするために少なくともboost, zlib, OpenEXRのHalfクラス, TBBが必要なので,
これらをビルドしておく必要がある(OpenVDBに含まれているViewerライブラリを使う場合はさらにglewとglfwも必要).
- boostのビルド
boostのダウンロードページからWindows用バイナリ
(DOWNLOADのところのOTHER DOWNLOADSの"Prebuilt windows binaries."からmsvc-11(VS2012の場合))
をダウンロードしてインストールしておく.各*.hファイルが入ったboostフォルダごとインクルードフォルダに,
スタティックリンクの場合は,libboost_chrono,date_time,system,thread-*.libをライブラリフォルダにコピーしておく.
- zlibのビルド
[build_zlib]を参考にビルドし,zlib.libをライブラリフォルダに,zlib.hとzconf.hをインクルードフォルダにコピーしておく.
- OpenEXRのHalfクラスのビルド
- OpenEXRの中で必要なのはHalfクラスだけなので,OpenEXRのダウンロードページ
からIlmBaseだけをダウンロードする.最新版のilmbase-2.2.0.tar.gzだとvcフォルダがなかったのでこの説明では一つ前のilmbase-2.1.0.tar.gzをダウンロードして使用している.
- ダウンロードしたファイルを解凍し,vc/vc8/IlmBase/IlmBase.slnをVisual Studioで開く(必要に応じてプロジェクトファイルの変換を行う).
- 必要に応じて構成を変えてHalfプロジェクトをビルドする(ソリューションではなくHalfプロジェクトだけでよい).
- vc/vc8/IlmBase/Win32 or x64/Release or DebugフォルダにできるHalf.libをライブラリフォルダに,Half.dllを実行フォルダに,Halfフォルダ内の*.hファイルをインクルードフォルダにコピーしておく.
- TBBのビルド
- TBBのソースコードをダウンロードページからダウンロードする
(tbb43_20150611oss_src.tgzなど).
- ダウンロードしたファイルを解凍し,build/vs2010/makefile.slnをVisual Studioで開く(必要に応じてプロジェクトファイルの変換を行う).
- 必要に応じて構成を変えてビルドする.
- build/vs2010/ia32 or intel64/Debug or Releaseフォルダにできるtbb.libをライブラリフォルダに,tbb.dllを実行フォルダに,includeフォルダ内のserialとtbbフォルダをフォルダごとインクルードフォルダにコピーしておく.
- OpenVDBのビルド
すべての必要なライブラリがビルドできたら,OpenVDB本体をビルドする.
- OpenVDBのダウンロードページからCore library(openvdb_*_*_*_library.zip)をダウンロードして解凍しておく(解凍フォルダを以下openvdbとする).
- Visual Studioを開いて新しいプロジェクトを作成する.プロジェクト作成ウィザードでは"Visual C++"の"Win32コンソールアプリケーション"を選択,右下の"ソリューションのディレクトリを作成"のチェックを外して"OK"&"次へ"をクリックする."アプリケーションの設定"のところで"アプリケーションの種類"を"スタティックライブラリ"にし,"追加のオプション"の"プリコンパイル済みヘッダー"のチェックを外して"完了"(SDLチェックも外しておくこと!).
- openvdbフォルダ内のヘッダファイル(*.h),ソースファイル(*.cc)をプロジェクトに追加する.io,math,metadata,tools,tree,utlsサブフォルダ内のヘッダ/ソースファイルも同様.
- math/Coord.hに
#define NOMINMAX
を追記,io/Compression.ccに
#define ZLIB_WINAPI
を追記する.
- OpenEXRのHalfクラスのビルドでHalfのみビルドした場合は,Types.hの
#include <OpenEXR/half.h>
を
#include <half.h>
に修正する.
- プロジェクトのプロパティで"C/C++"⇒"コード生成"⇒"ランタイムライブラリ"をReleaseならマルチスレッド(/MT),Debugならマルチスレッドデバッグ(/MTd)にする.マルチスレッドDLLやマルチスレッドデバッグDLLにしたい場合は,OpenVDBを使用するプロジェクト側で"C/C++"->"プリプロセッサ"の"プリプロセッサの定義"に OPENVDB_STATICLIB を追加すること
- プロジェクトのプロパティで"C/C++"⇒"全般"の"追加のインクルードディレクトリ"に上記でビルドした必要なライブラリを入れたインクルードフォルダのパスとopenvdbがあるフォルダのパスを指定する.
- プロジェクトをビルド.
- OpenVDBのサイトのコードサンプルを使ってライブラリをテストしてみる.OpenVDBのlibファイルは自分がプロジェクトで設定したところにできるが,ヘッダファイルは面倒なのでopenvdbフォルダごとインクルードフォルダにコピーして,
#include <openvdb/openvdb.h>
とインクルードしてやればよい.
- 注意事項
- OpenVDBのビルドで符号付きと符号なしのキャストエラーやstd:getenvに関するエラーが出る場合は,プロジェクトのプロパティでC/C++->全般の"SDLチェック"を"いいえ"にする
- サンプルプログラムを生成する際は,プロジェクトのプロパティのリンカー->入力の"特定の既定のライブラリの無視"にlibcmt.libを追加しておく(Debugの場合はlibcmtd.lib)
|