nlib
Windows(Visual Studio)用パッケージに関する情報
nlibを利用するために必要なソフトウェア
ビルドにはWindows 7以降とVisual Studio 2008以降(Express Editionでも可)、及びWindows用のcmakeが必要となります。
ZlibInputStream, ZlibOutputStreamを利用する場合にはzlibをコンパイルしてインストールする必要があります。 また、Visual Studioには最新のアップデートパッケージを適用しておく必要があることに注意してください。
chocolateyの利用 に記述されているように、chocolateyを利用して環境構築の一部を自動化することができます。 ここでは、chocolateyを利用して必要なソフトウェアをインストールするためのスクリプト例を示します(もちろん他の方法でも可能です)。
ディレクトリ構成
Windows(Visual Studio)用パッケージのディレクトリ構成は以下のようになっています。
├── lib
│   └── cmake/msvc
│       ├── nx_*-vc120.lib           # static 32bit libraries for Visual Studio 2013
│       ├── nx_*-vc120_d.lib         # static 32bit libraries(debug) for Visual Studio 2013
│       ├── nx_*-vc120amd64.lib      # static 64bit libraries for Visual Studio 2013
│       ├── nx_*-vc120amd64_d.lib    # static 64bit libraries(debug) for Visual Studio 2013
│       ├── nx_*-vc120dllamd64.dll   # 64bit DLLs for Visual Studio 2013
│       ├── nx_*-vc120dllamd64.lib   # 64bit import libraries for Visual Studio 2013
│       ├── nx_*-vc120dllamd64_d.dll # 64bit DLLs(debug) for Visual Studio 2013
│       ├── nx_*-vc120dllamd64_d.lib # 64bit import libraries(debug) for Visual Studio 2013
│       ├── nx_*-vc110.lib           # static 32bit libraries for Visual Studio 2012
│       ├── nx_*-vc110_d.lib         # static 32bit libraries(debug) for Visual Studio 2012
│       ├── nx_*-vc110amd64.lib      # static 64bit libraries for Visual Studio 2012
│       ├── nx_*-vc110amd64_d.lib    # static 64bit libraries(debug) for Visual Studio 2012
│       ├── nx_*-vc110dllamd64.dll   # 64bit DLLs for Visual Studio 2012
│       ├── nx_*-vc110dllamd64.lib   # 64bit import libraries for Visual Studio 2012
│       ├── nx_*-vc110dllamd64_d.dll # 64bit DLLs(debug) for Visual Studio 2012
│       ├── nx_*-vc110dllamd64_d.lib # 64bit import libraries(debug) for Visual Studio 2012
│       ├── nx_*-vc100.lib           # static 32bit libraries for Visual Studio 2010
│       ├── nx_*-vc100_d.lib         # static 32bit libraries(debug) for Visual Studio 2010
│       ├── nx_*-vc90.lib            # static 32bit libraries for Visual Studio 2008
│       └── nx_*-vc90_d.lib          # static 32bit libraries(debug) for Visual Studio 2008
└── samples
     └── cmake/cmake_vc[90|100|110|120|110amd64|120amd64].[sh|ps1]   # サンプルビルド用のCMakeを起動するためのシェルスクリプト
nlibを利用するためのソフトウェアのインストール方法(例)
以下はWindows7 SP1にVS2013かVS2012がインストールされている状況を想定したものです。 Express Editionを利用することも可能です。
# VS2013かVS2012をインストール後パワーシェルを管理者として立ち上げてSet-ExecutionPolicy RemoteSignedしておくこと
# chocolateyのインストール
iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
# chocolateyを使ってパッケージをインストール
cinst powershell4 # インストールしたpowershell4を有効にするために実行後再起動する必要があります。
cinst 7zip.commandline
cinst cmake
cinst windows-8-1-sdk
# zlib1.2.8のダウンロードと展開
Invoke-WebRequest http://www.zlib.net/zlib128.zip -Outfile zlib128.zip
7za x .\zlib128.zip
cd zlib-1.2.8
# zlibのコンパイルとインストール(VS2013を利用している場合)
cinst VS2013.4 # VS2013 Update 4のインストール。インストール済みの場合は不要
cmake -G "Visual Studio 12" -H"." -Bvc120
cmake --build vc120 --config Release --target INSTALL # Express editionの場合はIDEを開いてビルドする必要
cmake -G "Visual Studio 12 Win64" -H"." -Bvc120amd64
cmake --build vc120amd64 --config Release --target INSTALL
# ./samples/cmake/gen-sln.ps1 vc120 でサンプルプログラム(32bit)の.slnを作成
# ./samples/cmake/gen-sln.ps1 vc120amd64 でサンプルプログラム(64bit)の.slnを作成
# zlibのコンパイルとインストール(VS2012を利用している場合)
cinst VS2012.4 # VS2012 Update 4のインストール。インストール済みの場合は不要
cmake -G "Visual Studio 11" -H"." -Bvc110
cmake --build vc110 --config Release --target INSTALL # Express editionの場合はIDEを開いてビルドする必要
cmake -G "Visual Studio 11 Win64" -H"." -Bvc110amd64
cmake --build vc110amd64 --config Release --target INSTALL
# ./samples/cmake/gen-sln.ps1 vc110 でサンプルプログラム(32bit)の.slnを作成
# ./samples/cmake/gen-sln.ps1 vc110amd64 でサンプルプログラム(64bit)の.slnを作成
nlibのパッケージの展開とnlibのサンプルのコンパイル
上記のソフトウェアをインストールし終えたら、nlibを展開してVisual Studio上でコンパイルすることが可能になります。
  1. nlib(PC版)のzipファイルを展開します。環境変数の設定は必要ありません。
  2. 展開したディレクトリから./samples/cmake に移動します。
  3. パワーシェルからスクリプトを起動してVisual Studioのslnファイルを作成します。
    • Visual Studio 2012(32bit)の場合は、gen-sln.ps1 vc110 を実行します。
    • Visual Studio 2013(32bit)の場合は、gen-sln.ps1 vc120 を実行します。
    • Visual Studio 2013(64bit)の場合は、gen-sln.ps1 vc120amd64 を実行します。
    • その他の場合も対応する引数を渡してパワーシェルスクリプトを実行します。
  4. サブディレクトリ(vc110, vc120, vc120amd64等)にDebug, Releaseというディレクトリが作成され、その中にnx_samples.slnというファイルがあるのでそれをダブルクリックし、Visual StudioのIDEを起動します。
    • ここで、Debug内のソリューションはDebugビルド専用、Release内のソリューションはReleaseビルド専用であることに注意してください。
  5. IDEのメニューから、ビルド->ソリューションのビルド、で全てのサンプルをビルドすることができます。
その他プラットフォーム固有の情報
  • cmake/common.cmake.win32 を見ることで設定されているフラグを把握することができます。
  • Visual C++ 2008でsimdライブラリを利用するとコンパイラの内部エラーが発生する場合があります。
  • Visual Studio 2008 SP1に以下の修正プログラムを適用してください。_mm_insert_ps()の動作が修正されます。
  • Visual Studio 2008, 2010版のビルドは、Visual Studio 2015版のビルドがnlibのリリースに含まれる際にリリースに含まれなくなります。ご了承ください。