最近在研究openexr這種文件格式,免不得安裝一下OpenEXR軟件,這個軟件是開源的,需要編譯安裝,我的安裝方法是這樣的,分享一下。
一:去官網http://www.openexr.com/downloads.html下載ilmbase-2.2.0.tar.gz及openexr-2.2.0.tar.gz
二:去官網http://www.zlib.net/ 下載最新版本zlib source code,鏈接如下:http://zlib.net/zlib-1.2.8.tar.gz
三:把三個文件夾都解壓放到一個文件夾中,這樣做易於管理。
我的文件夾結構如下:C:\libs-x64\ilmbase
\openexr
\zlib
我的文件夾名字都刪掉了版本號,圖個在cmd命令行里敲命令輕松。
四:打開ilmbase文件夾中的“README.cmake.txt”文件,按照文件中步驟操作即可,只要環境配置沒問題,這一步會很順利:
把生成工程文件的四段cmd命令貼上來作為參考:
cd C:\libs-x64\ilmbase setlocal del /f CMakeCache.txt cmake -D CMAKE_INSTALL_PREFIX="C:\libs-x64\ilmbase\vc" -G "Visual Studio 10 Win64" ..\ilmbase
生成完工程之后記得按照說明文件去編譯。
五:這一步很重要,因為openexr的安裝不僅依賴ilmbase項,還需要zlib的支持。在編譯安裝openexr之前還需要編譯安裝zlib才行。
具體步驟同上,附上cmd命令:
cd C:\libs-x64\zilb setlocal del /f CMakeCache.txt cmake -D CMAKE_INSTALL_PREFIX="C:\libs-x64\zlib\vc" -G "Visual Studio 10 Win64" ..\zlib
生成完工程之后記得按照說明文件去編譯。
六:編譯安裝openexr。首先還是要生成一下openexr的vc2010工程,cmd命令如下:
cd C:\libs-x64\openexr setlocal del /f CMakeCache.txt cmake -D ZLIB_ROOT="C:\libs-x64\zlib\vc" -D ILMBASE_PACKAGE_PREFIX="C:\libs-x64\ilmbase\vc" -D CMAKE_INSTALL_PREFIX="C:\libs-x64\openexr\vc" -G "Visual Studio 10 Win64" ..\openexr
生成完畢后按照說明文檔進行編譯。編譯會提示錯誤:
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(151,5): error MSB6006: "cmd.exe" exited with code -1073741515
.
這個錯誤代碼是因為ilmbase與zlib的庫文件並沒有被vc2010查找到。在msdn上查找原因,
會得到這樣一個結果:The error code -1073741515 means STATUS_DLL_NOT_FOUND.
看到這個解釋就明白原因了。
解決辦法很簡單,分別將ilmbase及zlib工程中編譯好的dll文件拷貝到system32中再次編譯即可。
這樣vs2010就會在system32中找到這些庫文件,從而編譯成功。
當然你在環境變量的path中添加ilmbase及zlib編譯好的dll文件所在的文件夾也是可以的。
七:編譯完openexr之后還需要將生成文件拷貝到system32中去,這樣bin文件夾中的可執行文件在執行時才不會提示缺少相應的dll文件。
這里采用添加環境變量的方式同樣可行。
成功安裝OpenEXR就可以利用exrheader.exr工具來分析exr文件中header屬性,進一步學習OpenEXR這個軟件了,想想還是很興奮的~