CMake 3.7.1 を使用しています。Visual Studio 2015 x64 を使用してOpenEXR 2.2 をビルドしたいと考えています。リリース バージョンには、詳細なビルド手順が含まれています。
コマンド ウィンドウを起動し、CMakeLists.txt を含む IlmBase フォルダーに移動し、次のコマンドを入力します。 setlocal del /f CMakeCache.txt cmake -DCMAKE_INSTALL_PREFIX= -G "Visual Studio 10 Win64" ..\ilmbase
Windows エクスプローラーで IlmBase フォルダーに移動し、ILMBase.sln を開いてソリューションをビルドします。ビルドが成功したら、INSTALL プロジェクトを右クリックしてビルドします。前のステップで設定したパスに出力がインストールされます。
http://www.zlib.netにアクセスし、zlib をダウンロードします。
コマンド ウィンドウを起動し、CMakeLists.txt のある OpenEXR フォルダーに移動し、次のコマンドを入力します。
Windows エクスプローラーで OpenEXR フォルダーに移動し、OpenEXR.sln を開いてソリューションをビルドします。ビルドが成功したら、INSTALL プロジェクトを右クリックしてビルドします。前のステップで設定したパスに出力がインストールされます。
ステップ 1 から 2 は問題なく動作します。IlmBase の lib、dll、およびヘッダー ファイルは、「build」フォルダーに保存されます。
ステップ 1 から 2 で実行した手順:
wget.exe https://github.com/openexr/openexr/archive/v2.2.0.zip -OC:\thirdparty\vs2015\x64\openexr-2.2.0.zip
7za.exe x C:\thirdparty\vs2015\x64\openexr-2.2.0.zip -oC:\thirdparty\vs2015\x64
del C:\thirdparty\vs2015\x64\openexr-2.2.0.zip
C:
cd C:\thirdparty\vs2015\x64\openexr-2.2.0\IlmBase
cmake -G"Visual Studio 14 2015 Win64" -HC:\thirdparty\vs2015\x64\openexr-2.2.0 -BC:\build\vs2015\x64\openexr-2.2.0 ^
setlocal
del /f CMakeCache.txt
cmake -DCMAKE_INSTALL_PREFIX="..\ilmbase\build" -G "Visual Studio 14 2015 Win64" ..\ilmbase
cmake --build . --config Release
cmake --build . --config Debug
cmake --build . --target INSTALL
ステップ 3 (zlib-1.2.8 のダウンロードとビルド) も簡単です。
wget.exe http://zlib.net/zlib128.zip -OC:\thirdparty\vs2015\x64\zlib-1.2.8.zip
7za.exe x C:\thirdparty\vs2015\x64\zlib-1.2.8.zip -oC:\thirdparty\vs2015\x64
del C:\thirdparty\vs2015\x64\zlib-1.2.8.zip
call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
cmake -G"Visual Studio 14 2015 Win64" -HC:\thirdparty\vs2015\x64\zlib-1.2.8 -BC:\build\vs2015\x64\zlib-1.2.8
C:
cd C:\build\vs2015\x64\zlib-1.2.8
cmake --build . --config Release
cmake --build . --config Debug
mkdir C:\thirdparty\vs2015\x64\zlib-1.2.8\lib
mkdir C:\thirdparty\vs2015\x64\zlib-1.2.8\bin
copy Debug\zlibd.dll C:\thirdparty\vs2015\x64\zlib-1.2.8\bin\zlibd.dll
copy Debug\zlibd.exp C:\thirdparty\vs2015\x64\zlib-1.2.8\lib\zlibd.exp
copy Debug\zlibd.ilk C:\thirdparty\vs2015\x64\zlib-1.2.8\lib\zlibd.ilk
copy Debug\zlibd.lib C:\thirdparty\vs2015\x64\zlib-1.2.8\lib\zlibd.lib
copy Debug\zlibd.pdb C:\thirdparty\vs2015\x64\zlib-1.2.8\lib\zlibd.pdb
copy Debug\zlibstaticd.lib C:\thirdparty\vs2015\x64\zlib-1.2.8\lib\zlibstaticd.lib
copy Release\zlib.dll C:\thirdparty\vs2015\x64\zlib-1.2.8\bin\zlib.dll
copy Release\zlib.exp C:\thirdparty\vs2015\x64\zlib-1.2.8\lib\zlib.exp
copy Release\zlib.lib C:\thirdparty\vs2015\x64\zlib-1.2.8\lib\zlib.lib
copy Release\zlibstatic.lib C:\thirdparty\vs2015\x64\zlib-1.2.8\lib\zlibstatic.lib
cd C:\thirdparty\vs2015\x64
rmdir C:\build\vs2015\x64\zlib-1.2.8 /S /Q
次に、ステップ 4 + 5 に進みます。次のステートメントを実行しています。
cmake -DZLIB_ROOT="C:\thirdparty\vs2015\x64\zlib-1.2.8" ^
-DILMBASE_PACKAGE_PREFIX="C:\thirdparty\vs2015\x64\openexr-2.2.0\IlmBase\build" ^
-DCMAKE_INSTALL_PREFIX="..\OpenEXR\build" ^
-G "Visual Studio 14 2015 Win64" ^
..\openexr
openexr.sln を開いて、IlmInf をビルドしようとしています。エラーが 1 つあります。「cmd.exe」がコード -1073741515 で終了しました
エラーログは次のとおりです。
4>------ Build started: Project: IlmImf, Configuration: Debug x64 ------
4> Building Custom Rule C:/thirdparty/vs2015/x64/openexr-2.2.0/OpenEXR/IlmImf/CMakeLists.txt
4> CMake does not need to re-run because C:\thirdparty\vs2015\x64\openexr-2.2.0\OpenEXR\IlmImf\CMakeFiles\generate.stamp is up-to-date.
4> Generating b44ExpLogTable.h
4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB6006: "cmd.exe" exited with code -1073741515.
========== Build: 3 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
このエラーが発生する理由がわかりません。ここで何が間違っていますか?
ところで: zlib と OpenEXR のビルドに使用した私のバッチ スクリプトは、https ://bitbucket.org/snippets/Vertexwahn/ にあります。