よく使うライブラリのビルド/インストール方法など



CG

freeglut

GLUT代替ライブラリ.

  • ビルド
    1. ダウンロードしたファイルを解凍
    2. (2.8.1以前) 解凍したフォルダのVisualStudio/2012/freeglut.slnがVS2012用のソリューションファイル.freeglut.slnを開いてビルドする.スタティックビルドの場合はプロジェクト構成で*_Staticというのを選択する.
    3. (3.0.0以降) CMakeをインストールし,CMake(GUI)で"Where is the source code"にfreeglutを解凍したフォルダ(srcフォルダではないので注意),"Where to build the binaries"にプロジェクトを作成するフォルダへのパスを入力し,"Configure"→ビルドオプション指定→"Generate"でプロジェクトを作成,ソリューションファイルを開いてビルドする.
  • インストール
    解凍フォルダ直下のinclude/GLフォルダ内にインクルードファイルがある.GLフォルダごとプロジェクトのインクルードディレクトリにコピーするか,includeフォルダをインクルードディレクトリとして設定する.
    ライブラリファイルは解凍フォルダ直下(CMakeを使った場合はプロジェクトを作成したフォルダ直下)のlibフォルダにある. ダイナミックライブラリの場合は,
    freeglut.dll freeglut.lib
    がRelease,Debugフォルダにできているので,適切なフォルダにコピーする.
    スタティックビルドの場合は,
    freeglut_static.lib
    が生成されている.こちらも適切なフォルダにコピーする.さらに,スタティックビルドの場合は,コンパイル時のプリプロセッサに
    FREEGLUT_STATIC
    を指定する.

GLEW

OpenGL拡張をロードするライブラリ

  • ダウンロード
    http://glew.sourceforge.net/ からソースコード(glew-*.*.*.zip)をダウンロードして,解凍 or SVNリポジトリから最新版をチェックアウトする.TortoiseSVNならソース群をダウンロードしたいフォルダで右クリック,TortoiseSVN->チェックアウトでリポジトリのURLに
    https://glew.svn.sourceforge.net/svnroot/glew/trunk/glew
    を指定.
  • ビルド
    1. ダウンロードしたファイルを解凍.
    2. 解凍したフォルダの build\vc10 に glew.sln というファイルがあるので,これをVisual Studio 2012(以下VS)で開く.VS2013の場合はbuild\vc12を使う.
    3. プロジェクトの構成を選択して,ビルドする.プロジェクトの構成には,Debug, Debug MX, Release, Release MXがある.通常はReleaseを選んでおけばよい.MXがついた構成はMultiple Rendering Contextsをサポートさせたい場合に用いる.
  • インストール
    以下のようにファイルをコピーする.
    bin/glew32.dll → アプリケーションの実行フォルダ or %SystemRoot%/system32
    lib/glew32.lib → プロジェクトのライブラリフォルダ
    include/GL/glew.h と wglew.h → プロジェクトのインクルードフォルダ

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にはたくさんのサンプルが含まれているのでインストールすることをお勧めする.
  • ドライバのインストール
    ダウンロードしたドライバをインストールする.ドライバのファイル名は,
    cudadriver_(バージョン番号)_(対応OS)_(32か64)_(ドライババージョン)_(general,notebook).exe
    など.最後がgeneralならデスクトップ用,notebookならノートPC用. インストール後,NVIDIAコントロールパネルのシステム情報から「ドライバのバージョン」を確認しておく.
  • ツールキットのインストール
    ツールキットをインストールする.ファイル名は,
    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
  • SDKのインストール
    SDKをインストールする.ファイル名は,
    cudatools_(バージョン番号)_(対応OS)_(32か64).msi
    gpucomputingsdk_(バージョン番号)_(対応OS)_(32か64).msi
    など.デフォルトのインストール先は"C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0"
  • (インストールの確認)
    インストールの確認のために,コマンドプロンプトから"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をスキップ.

  1. blitz++をダウンロード(blitz-0.9.tar.gzなど),解凍する.
  2. blitz++を解凍したフォルダ($BLITZ_HOMEとする)内のBlitz-VS.NET.zipを解凍する($BLITZ_HOMEに直接解凍.slnファイルなどが$BLITZ_HOMEに置かれるようにする).
  3. Blitz-Library.slnをVS2005で開く.変換ウィザードが出てきたらそのまま完了を押せばよい.
  4. Debug, Releaseでビルドする.-> 正常に完了していれば,libフォルダにblitz.lib, blitz_d.libができている.動作確認したいときは,Blitz-Examples.slnを試す.
  5. VS2005 or VSプロジェクトで$BLITZ_HOMEフォルダをインクルードフォルダに,$BLITZ_HOME\libをライブラリフォルダに設定,もしくは, $BLITZ_HOME\blitzフォルダをインクルードできる場所に,blitz.lib, blitz_d.libを現在のライブラリフォルダにコピー.
  6. blitzwaveをダウンロード(blitzwave-0.7.1.tar.gzなど),解凍する(解凍フォルダを$BLITZWAVE_HOMEとする).
  7. 新規プロジェクトで構成の種類が"スタティックライブラリ(.lib)"となるように構成("空のプロジェクト"で作成後,プロジェクト設定で構成の種類を変えるなどでよい).プロジェクト名はここでは blitzwave とする.
  8. プロジェクトに$BLITZWAVE_HOME\srcの中の*-test.cxx以外の*.h, *.cxxを追加(arrayTools.h, arrayTools.cxx, Wavelet.h, Wavelet.cxx, WaveletDecomp.h, WaveletDecomp.cxx).
  9. 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秒程度の精度しかないようなので,どこかで問題が出るかもしれない.
  10. Debug, Releaseでビルドする.動作確認したいときは,arrayTools-test.cxx,Wavelet-test.cxx,WaveletDecomp-test.cxx などを試すとよい (arrayTools-test.cxxは<sys/time.h>を使っているので,9と同じような修正が必要).
  11. blitzwave.libをライブラリフォルダへ,arrayTools.h, Wavelet.h, WaveletDecomp.hをインクルードフォルダにコピーする.

fftw

FFT(高速フーリエ変換)ライブラリ.

  1. http://www.fftw.org/install/windows.html から fftw-3.2.2.pl1-dll32.zip をダウンロードし, 適当な場所に解凍する.
  2. コマンドプロンプトでVC++の環境変数をセットする(VC++のbinフォルダのvcvars32.batをコマンドラインで実行するか, スタートメニューから Visual Studio 2005 コマンド プロンプト などを起動). 1で解凍したフォルダに移動し,
    lib /def:libfftw3-3.def
    lib /def:libfftw3f-3.def
    lib /def:libfftw3l-3.def
    を実行する.
  3. プロジェクトのインクルードフォルダに
    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
  • ビルド
    1. ダウンロードしたファイルを解凍する.
    2. projects/vstudioフォルダにVS2010用のソリューションファイル vstudio.sln がある. vstudio.sln を開く前に同フォルダのzlib.propsをテキストエディタで開き,
      <ZLibSrcDir> ... </ZLibSrcDir>
      にzlibのソースコードフォルダを指定する.相対パスを使う場合はプロジェクトファイル(*.vcxproj)からでなければならない (slnのあるフォルダよりさらに1階層下).
    3. vstudio.sln を開いて(ダブルクリックで開けない場合は,Visual Studio 2010からファイルを指定して開く),Release, Release Libraryでビルド.
  • 生成されるファイル(バージョンや環境に依存)
    ビルド構成フォルダファイル備考
    Releaseprojects/vstudio/Releaselibpng15.dll, libpng15.lib, zlib.lib
    Release Libraryprojects/vstudio/Release Librarylibpng15.lib, zlib.libスタティックリンク
  • ヘッダファイル
    解凍したフォルダ直下の
    png.h pngconf.h pnglibconf
    および,zlibの解凍フォルダの
    zlib.h zconf.h

libjpeg

JPEGファイルを扱うためのライブラリ.

  • ビルド : nmakeでVC2010プロジェクトファイルを生成
    1. ダウンロードしたファイルを解凍
    2. Visual Studio コマンドプロンプトを開いて,libjpegのフォルダに移動
    3. 以下のコマンドを実行 *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)\〜の部分は自分の環境に合わせて変えること.
    4. 生成されたjpeg.slnを開いてコンパイル(必要に応じてビルドオプションを設定) *2
    5. Releaseフォルダにjpeg.libが生成されるので読み込ませたいプロジェクトから見える位置にコピー
  • ビルド : nmakeで直接生成
    1. ダウンロードしたファイルを解凍
    2. 解凍したフォルダの jconfig.vc を jconfig.h に名前変更(jconfig.vcはVisual C++用のjconfig.hファイル)
    3. Visual Studio コマンドプロンプト *3 を開いて,libjpegのフォルダに移動
    4. 以下のコマンドを実行
      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
    5. libjpegのフォルダにlibjpeg.libが生成されるので読み込ませたいプロジェクトから見える位置にコピー
  • ヘッダ,ライブラリファイル
    jpeglib.h jconfig.h jerror.h jmorecfg.h

libwebp

WebPファイルを扱うためのライブラリ.

  • ダウンロード Google codeのWebPのページのDownloadから ソースコード(libwebp-*.tar.gz)をダウンロード. ちなみにビルド済みのライブラリ(libwebp-*-windows-x86.zip)もあるので,ビルドするのが面倒な場合はこちらを使う.
  • ビルド
    1. ダウンロードしたファイルを解凍.解凍したフォルダを$WEBPとする.
    2. Visual Studio コマンドプロンプトを立ち上げる.
      スタートメニュー -> Microsoft Visual Studio 2010 -> Visual Studio Tools -> Visual Studio コマンド プロンプト (2010)
    3. $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
    4. ビルドが成功すれば,OBJDIRに指定したフォルダ内にrelease-static/x86などのフォルダができ, その中のlib,binフォルダにlib,dllファイルが生成される.
  • インストール
    • ライブラリファイル
      ビルドで*-staticを指定した場合は,
      libwebp.lib, libwebp_debug.lib
      *-dynamicを指定した場合は上記に加えて,dllファイルをそれぞれ実行フォルダ,ライブラリフォルダにコピー.
    • インクルードファイル
      $WEBP/src/webpフォルダをフォルダごとインクルードフォルダにコピー.
  • x64ビルド x64用にビルドするにはnmakeの出力ターゲットをamd64にする必要がある. 上記の手順2で通常のコマンドプロンプトを立ち上げ,vcvarsall.batに引数amd64を与えて実行する. Visual Studio 2010なら,
    "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" amd64
    とすることでnmakeのターゲットがx64(amd64)になるので, 後は上記の手順3以降を同様に行うと,release-static/x64などのフォルダにlib,dllファイルが生成される.

OpenCV

Computer Vision ライブラリ.OpenCV 2.3とVisual Studio 2010でのビルド方法.

  • ダウンロード SourceForge - OpenCV のFilesからopencv-winのOpenCV-2.*.*-win-src.zipをダウンロード
  • 必要なもの
    • 必須なもの
      • 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環境下で高速化できる.
  • ビルド
    1. OpenCV-2.*.*-win-src.zipをダウンロードして解凍.解凍したフォルダを$OPENCVとする.
    2. 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.
    3. cmakeを実行したときにできるVSプロジェクトファイルなどを保存するテンポラリフォルダを作成. ここでは,$OPENCV/buildとする.
    4. スタートメニューからCMake (cmake-gui)を実行.
    5. CMakeのウィンドウで"Where is the source code"に$OPENCVのパス,"Where to build the binaries"に$OPENCV/buildのパスを設定.
    6. Configureボタンをクリックするとコンパイラを選ぶウィンドウが現れる. "Specify the generator for this project"のところで "Visual Studio 10" (64bitの場合は"Visual Studio Win64")を選択する.
    7. ビルドオプション一覧が出るので必要に応じて編集.Generateする前にConfigureをクリックして整合性をチェックする.
      cmake_opencv.jpg
      以下は私の設定メモ(スタティックビルドの場合)
      • BUILD_SHARED_LIBSをアンチェック -> BUILD_WITH_STATIC_CRTが現れるのでチェックを入れる
      • BUILD_EXAMPLESにチェック
    8. 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をインストールする.
    • Platform SDK for Windows Server 2003 R2 をダウンロードする.ダウンロードした*.imgファイルをCDに焼くか,仮想ドライブソフトにマウントしてPlatform SDKをインストール.
    • DirectX 9.0 SDK (February 2005) をダウンロードしてインストール.
    • DirectX 9.0 SDK (February 2005) Extras (DirectShow SDK)をダウンロードする.自己解凍ファイルになっているので適当なフォルダに解凍して, できたExtrasフォルダをDirectX 9.0 SDKのフォルダ(x64環境だと以下)にコピーする.
      C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (February 2005)
      より新しいDirectXもあるが,videoInputに対応するのはこのバージョン(February 2005)のみ.
  • ビルド
    1. videoInputをダウンロード(videoInput0.1995.zip)して解凍.
    2. 解凍したフォルダ内の videoInputSrcAndDemos/VC2008-videoInputcompileAsLib にVC2008用のプロジェクト,ソリューションファイルがあるのでVC2010で開いて変換.
    3. プロジェクトのプロパティ -> 構成プロパティ -> 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 
    4. その他プロジェクトの設定を必要に応じて変更してビルドする. ビルドするとctlutil.hのエラーC4430か,winnt.hのリンクエラーC2146が出るかもしれない. これはオペレータ関数の返値の問題なので,
      operator=(LONG);
      の部分を
      COARefTime& operator=(LONG);
      に変更する. (また,intrin.hで__MACHINEIの多重定義エラーが出たら該当箇所をコメントアウトする).
    5. 再度ビルド.
  • インクルードファイルとライブラリファイル インクルードファイル
    videoInputSrcAndDemos/libs/videoInput/videoInput.h
    ライブラリファイル
    videoInputSrcAndDemos/VC2008-videoInputcompileAsLib/Release/videoInput.lib
  • その他 自分のプロジェクトにリンクしたとき,
    error LNK2038: '_ITERATOR_DEBUG_LEVEL' の不一致が検出されました。値 '2' が 0 の値 'main.obj' と一致しません。
    というエラーが出た場合はライブラリのビルドオプションで,
    プロジェクトのプロパティ -> C/C++ -> プリプロセッサ
    に _ITERATOR_DEBUG_LEVEL=0 を追加.

その他

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をビルドする.
      1. Visual Studio コマンドプロンプトでcontrib/masmx86に移動して,bld_ml32.batを実行.
      2. VS2010ならcontrib/vstudio/vc10/zlibvc.sln, VS2008ならcontrib/vstudio/vc9/zlibvc.sln を開いてビルド.
      3. zlibwapi.dll, zlibwapi.libとzlibstat.libがcontrib/vstudio/vc*/x86/Zlib*Releaseフォルダが生成される
  • ヘッダファイル : 解凍したフォルダ直下の
    zlib.h, zconf.h

boost

Visual C++用のバイナリがboostproで配布されている(要登録).

自身の環境でビルドしたい場合の手順は以下 (詳しくは,Getting Startedを参照).

  1. boostのページから最新のboostライブラリをダウンロードする. 中央のDOWNLOADSのところから最新版のリンクをクリックし,boost_1_57_0.zipなどをダウンロードして解凍する. 解凍先フォルダを$BOOSTとする.

[ver1.5?以降(バージョンはちゃんと確かめていない)]

  1. boostではビルドするためのBoost.Buildシステムを構築するためのバッチファイルbootstrapが含まれているので,これを実行する. スタートメニューからVisual Studioコマンドプロンプト (VS2012ならMicrosoft Visual Studio 2012 -> Visual Studio Tools -> VS2012 の開発者コマンド プロンプト) を立ち上げ,$BOOSTフォルダに移動し,以下のコマンドを実行すr.
    bootstrap
  2. 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?以前]

  1. bjam.exeを準備する.boostのページからビルド済みバイナリを落としてくるか, 自分で環境に合わせてビルドする.ビルドの仕方は以下.
    1. $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を参照.
    2. $BOOST\tools\jam\src\bin.ntx86\ に環境に合わせたbjam.exeができるので,これを$BOOSTかPATHが通っているところに移動.
  2. コマンドプロンプトで$BOOSTに移動して,bootstrap.batを実行.
    bootstrap.bat
  3. 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 で参照.ビルドは環境にもよるが結構時間がかかるので注意.
  4. prefixオプションで指定したところにinclude\boost-1_45, libフォルダができているので,それぞれインクルードパス,ライブラリパスに追加するなどする.

ODE

物理シミュレーションエンジン.

  • ダウンロード
    ODE Download(SourceForge)から,Windows用の ode-(バージョン番号).zip をダウンロードして,適当な解凍ソフトで解凍する.解凍してできたフォルダ(ode-*)を適当なところに置く.ここでは置いたフォルダのパスを $ODE と表現する.
  • ライブラリのビルド
    • 0.10.*より前のバージョンでは,$ODE\build に各環境に合わせたコンパイル・ビルド用ファイルがあるので,自分の環境に合わせてビルド.Windows/Visual Studio 2005 の場合,$ODE\build\vs2005\ode.sln を用いる.用意されているプロジェクトの構成は,DebugDLL,DebugLib,ReleaseDLL,ReleaseLib の四つ.
    • 0.10.*以降では$ODE\build\にあるpremakeを使ってビルド用ファイルを作成する. コマンドプロンプトからpremake --helpでコマンドの説明が出るので, それを参考にここではVisual Studio 2005用のビルドファイルを作ってみる.
      premake --with-demos --with-tests --target vs2005
    • 0.11からpremake.exeとpremake4.exe,0.11.1からはpremake4.exeのみが同梱されている.
      premake4 --help
      でコマンドの説明が出る.
      1. デモも含めて Visual Studio 2005用のビルドファイルを作る場合は,
        premake4 --with-demos vs2005
        をコマンドプロンプトから打ち込む.
      2. vs2005フォルダが作られるので,その中のode.slnを使ってライブラリをビルドする. 用意されているプロジェクトの構成は,
        DebugDoubleDLL,DebugDoubleLib,DebugSingleDLL,DebugSingleLib,
        ReleaseDoubleDLL,ReleaseDoubleLib,ReleaseSingleDLL,ReleaseSingleLib
        の八つ. Visual Studioのツールバーからビルドしたい構成を選択するか(下図左), メニュー「ビルド」->「構成マネージャ」からアクティブソリューション構成で選択する(下図右). 全構成を一気にビルドしたい場合は,「ビルド」->「バッチビルド」を使うと便利である.
        ode_proj.jpg ode_proj2.jpg
        ここでは,*Libを用いるが,コード生成のランタイムライブラリがマルチスレッドDLLになっているので, スタティックリンクにしたい場合,プロジェクトのプロパティから「コード生成」->「ランタイムライブラリ」をマルチスレッドにする(下図参照).(複数のプロジェクトの設定を一度に変更する場合は,ソリューションエクスプローラでShiftキーを押しながらクリックで複数プロジェクトを選択後,設定する).
        ode_proj3.jpg
      3. ビルドされたファイルは,$ODE\lib\debuglib\,$ODE\lib\releaselib\ などに入っている.ode_*.lib が必須ファイルで,これを自分のプロジェクトにライブラリファイルとして追加する.また,ODEが用意したGUI環境を用いるなら drawstuff.lib も必要. 追加のインクルードディレクトリは,$ODE\include .
      4. プロジェクトの設定で,ode_*.lib drawstuff.lib を追加のライブラリファイルにする(*はsingleもしくはdouble). drawstuff を用いないなら,ode_*.lib だけでもよい.
  • 倍精度 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).
    1. OpenGLキャンパスを使いたいならば,coreもしくはbaseプロジェクトのSetup Headers内の「setup.h」の

      #define wxUSE_GLCANVAS が 1 になっていることを確認する.

    2. スタティックビルドにしたいならば,全てのプロジェクトを選択して,プロジェクトのプロパティで "C/C++" -> "コード生成" -> "ランタイム ライブラリ"を"マルチスレッド" or "マルチスレッド デバッグ"にする.
  • "ビルド" -> "ソリューションのビルド" で全てのプロジェクトをビルドする.
  • 正常にビルドできたら,$(WX_HOME)/lib/vc_libにライブラリファイルと「setup.h」を格納したフォルダができている.
  • $(WX_HOME)/samplesにサンプルソースがたくさんあるのでどれか開いてみてビルドできるか確かめる.例えば,"controls"はさまざまなGUIウィジット をタブで切り替えられるサンプルである.
    1. $(WX_HOME)/samples直下にsamples.dswはあるが,slnファイルはない.dsw(Visual Studio 6.0以前に用いられていたワークスペースファイル) を開いて変換しても良いが,各サンプルフォルダにはVisual Studio各バージョン用のプロジェクトファイルがあるので,そちらを開いた方がよいかもしれない.
    2. もし,ライブラリ作成でスタティックビルドにしたならば,サンプルも同様にすること.

FLTK

軽量なGUIツールキット

  • ダウンロード
    ここからfltk-1.3.*-source.tar.gzをダウンロード.
  • ビルド
    1. ダウンロードしたファイルを解凍.
    2. 解凍したフォルダのideフォルダにWindows,MacのIDE用のファイルがある.ここではVisual Studio 2010でビルドする. ソリューションファイル ide\VisualC2010\fltk.sln をVS2010で開く
    3. 必要に応じてプロジェクトの設定などを編集し,ビルドする.
  • インストール
    • インクルードファイル : 解凍フォルダ直下の"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クラスのビルド
      1. OpenEXRの中で必要なのはHalfクラスだけなので,OpenEXRのダウンロードページ からIlmBaseだけをダウンロードする.最新版のilmbase-2.2.0.tar.gzだとvcフォルダがなかったのでこの説明では一つ前のilmbase-2.1.0.tar.gzをダウンロードして使用している.
      2. ダウンロードしたファイルを解凍し,vc/vc8/IlmBase/IlmBase.slnをVisual Studioで開く(必要に応じてプロジェクトファイルの変換を行う).
      3. 必要に応じて構成を変えてHalfプロジェクトをビルドする(ソリューションではなくHalfプロジェクトだけでよい).
      4. vc/vc8/IlmBase/Win32 or x64/Release or DebugフォルダにできるHalf.libをライブラリフォルダに,Half.dllを実行フォルダに,Halfフォルダ内の*.hファイルをインクルードフォルダにコピーしておく.
    • TBBのビルド
      1. TBBのソースコードをダウンロードページからダウンロードする (tbb43_20150611oss_src.tgzなど).
      2. ダウンロードしたファイルを解凍し,build/vs2010/makefile.slnをVisual Studioで開く(必要に応じてプロジェクトファイルの変換を行う).
      3. 必要に応じて構成を変えてビルドする.
      4. build/vs2010/ia32 or intel64/Debug or Releaseフォルダにできるtbb.libをライブラリフォルダに,tbb.dllを実行フォルダに,includeフォルダ内のserialとtbbフォルダをフォルダごとインクルードフォルダにコピーしておく.
  • OpenVDBのビルド すべての必要なライブラリがビルドできたら,OpenVDB本体をビルドする.
    1. OpenVDBのダウンロードページからCore library(openvdb_*_*_*_library.zip)をダウンロードして解凍しておく(解凍フォルダを以下openvdbとする).
    2. Visual Studioを開いて新しいプロジェクトを作成する.プロジェクト作成ウィザードでは"Visual C++"の"Win32コンソールアプリケーション"を選択,右下の"ソリューションのディレクトリを作成"のチェックを外して"OK"&"次へ"をクリックする."アプリケーションの設定"のところで"アプリケーションの種類"を"スタティックライブラリ"にし,"追加のオプション"の"プリコンパイル済みヘッダー"のチェックを外して"完了"(SDLチェックも外しておくこと!).
    3. openvdbフォルダ内のヘッダファイル(*.h),ソースファイル(*.cc)をプロジェクトに追加する.io,math,metadata,tools,tree,utlsサブフォルダ内のヘッダ/ソースファイルも同様.
    4. math/Coord.hに
      #define NOMINMAX
      を追記,io/Compression.ccに
      #define ZLIB_WINAPI
      を追記する.
    5. OpenEXRのHalfクラスのビルドでHalfのみビルドした場合は,Types.hの
      #include <OpenEXR/half.h>
      #include <half.h>
      に修正する.
    6. プロジェクトのプロパティで"C/C++"⇒"コード生成"⇒"ランタイムライブラリ"をReleaseならマルチスレッド(/MT),Debugならマルチスレッドデバッグ(/MTd)にする.マルチスレッドDLLやマルチスレッドデバッグDLLにしたい場合は,OpenVDBを使用するプロジェクト側で"C/C++"->"プリプロセッサ"の"プリプロセッサの定義"に OPENVDB_STATICLIB を追加すること
    7. プロジェクトのプロパティで"C/C++"⇒"全般"の"追加のインクルードディレクトリ"に上記でビルドした必要なライブラリを入れたインクルードフォルダのパスとopenvdbがあるフォルダのパスを指定する.
    8. プロジェクトをビルド.
    9. OpenVDBのサイトのコードサンプルを使ってライブラリをテストしてみる.OpenVDBのlibファイルは自分がプロジェクトで設定したところにできるが,ヘッダファイルは面倒なのでopenvdbフォルダごとインクルードフォルダにコピーして,
      #include <openvdb/openvdb.h>
      とインクルードしてやればよい.
  • 注意事項
    • OpenVDBのビルドで符号付きと符号なしのキャストエラーやstd:getenvに関するエラーが出る場合は,プロジェクトのプロパティでC/C++->全般の"SDLチェック"を"いいえ"にする
    • サンプルプログラムを生成する際は,プロジェクトのプロパティのリンカー->入力の"特定の既定のライブラリの無視"にlibcmt.libを追加しておく(Debugの場合はlibcmtd.lib)

*1 単に*.v10ファイルをリネームするだけなのでmakefile.vcの内容を見て自分でファイル名変更しても問題ない?
*2 私の環境だと解凍ソフトが悪かったのか*.vcxprojの先頭に無効な文字が含まれていたのでテキストエディタで開いて削除した
*3 VS2010ならスタートメニュー->Microsoft Visual Studio 2010 -> Visual Studio Tools -> Visual Studio コマンド プロンプト (2010)

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-03-08 (金) 18:06:10