最近在研究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这个软件了,想想还是很兴奋的~