这里使用的是OpenImageIO 1.1.11,要将OIIO解压到[工作目录]/openimageio/oiio里面。

先要给OIIO打一个patch,patch文件是Blender提供的:

下载OpenImageIO 1.1.11 Windows Patch

打好patch以后,对于Debug,在[工作目录]/openimageio创建如下bat文件并用Visual Studio 2008命令行运行:

@Echo off

cd oiio

set LIBDIR=%CD%\..\..

:: create build directory
mkdir build\windows_debug
cd build\windows_debug

cmake -G "NMake Makefiles" ..\..\src ^
-DCMAKE_INSTALL_PREFIX=%LIBDIR%\openimageio\debug ^
-DILMBASE_INCLUDE_DIR=%LIBDIR%\openexr\include ^
-DILMBASE_HALF_LIBRARIES=%LIBDIR%\openexr\lib\Half_d.lib ^
-DILMBASE_IMATH_LIBRARIES=%LIBDIR%\openexr\lib\Imath_d.lib ^
-DILMBASE_ILMTHREAD_LIBRARIES=%LIBDIR%\openexr\lib\IlmThread_d.lib ^
-DILMBASE_IEX_LIBRARIES=%LIBDIR%\openexr\lib\Iex_d.lib ^
-DOPENEXR_INCLUDE_DIR=%LIBDIR%\openexr\include ^
-DOPENEXR_ILMIMF_LIBRARIES=%LIBDIR%\openexr\lib\IlmImf_d.lib ^
-DLINKSTATIC=ON ^
-DBUILDSTATIC=ON ^
-DBOOST_ROOT=%LIBDIR%\boost ^
-DBoost_USE_STATIC_RUNTIME=ON ^
-DZLIB_INCLUDE_DIR=%LIBDIR%\zlib\include ^
-DZLIB_LIBRARY=%LIBDIR%\zlib\lib\libz_d.lib ^
-DPNG_PNG_INCLUDE_DIR=%LIBDIR%\png\include ^
-DPNG_LIBRARY=%LIBDIR%\png\lib\libpng_d.lib ^
-DJPEG_INCLUDE_DIR=%LIBDIR%\jpeg\include ^
-DJPEG_LIBRARY=%LIBDIR%\jpeg\lib\libjpeg_d.lib ^
-DTIFF_INCLUDE_DIR=%LIBDIR%\tiff\include ^
-DTIFF_LIBRARY=%LIBDIR%\tiff\lib\libtiff_d.lib ^
-DUSE_OPENGL=OFF ^
-DUSE_TBB=OFF ^
-DUSE_FIELD3D=OFF ^
-DUSE_QT=OFF ^
-DUSE_PYTHON=OFF ^
-DCMAKE_BUILD_TYPE=Debug

nmake
nmake install

cd ..\..\..

对于Release使用如下bat文件:

@Echo off

cd oiio

set LIBDIR=%CD%\..\..

:: create build directory
mkdir build\windows
cd build\windows

cmake -G "NMake Makefiles" ..\..\src ^
-DCMAKE_INSTALL_PREFIX=%LIBDIR%\openimageio ^
-DILMBASE_INCLUDE_DIR=%LIBDIR%\openexr\include ^
-DILMBASE_HALF_LIBRARIES=%LIBDIR%\openexr\lib\Half.lib ^
-DILMBASE_IMATH_LIBRARIES=%LIBDIR%\openexr\lib\Imath.lib ^
-DILMBASE_ILMTHREAD_LIBRARIES=%LIBDIR%\openexr\lib\IlmThread.lib ^
-DILMBASE_IEX_LIBRARIES=%LIBDIR%\openexr\lib\Iex.lib ^
-DOPENEXR_INCLUDE_DIR=%LIBDIR%\openexr\include ^
-DOPENEXR_ILMIMF_LIBRARIES=%LIBDIR%\openexr\lib\IlmImf.lib ^
-DLINKSTATIC=ON ^
-DBUILDSTATIC=ON ^
-DBOOST_ROOT=%LIBDIR%\boost ^
-DBoost_USE_STATIC_RUNTIME=ON ^
-DZLIB_INCLUDE_DIR=%LIBDIR%\zlib\include ^
-DZLIB_LIBRARY=%LIBDIR%\zlib\lib\libz.lib ^
-DPNG_PNG_INCLUDE_DIR=%LIBDIR%\png\include ^
-DPNG_LIBRARY=%LIBDIR%\png\lib\libpng.lib ^
-DJPEG_INCLUDE_DIR=%LIBDIR%\jpeg\include ^
-DJPEG_LIBRARY=%LIBDIR%\jpeg\lib\libjpeg.lib ^
-DTIFF_INCLUDE_DIR=%LIBDIR%\tiff\include ^
-DTIFF_LIBRARY=%LIBDIR%\tiff\lib\libtiff.lib ^
-DUSE_OPENGL=OFF ^
-DUSE_TBB=OFF ^
-DUSE_FIELD3D=OFF ^
-DUSE_QT=OFF ^
-DUSE_PYTHON=OFF ^
-DCMAKE_BUILD_TYPE=Release

nmake
nmake install

cd ..\..\..

Windows上编译OpenImageIO的更多相关文章

  1. 在Mac/Linux/Windows上编译corefx遇到的问题及解决方法

    这两天尝试在Mac/Linux/Windows三大平台上编译.NET跨平台三驾马车(coreclr/corefx/dnx)之一的corefx(.NET Core Framework),结果三个平台的编 ...

  2. [ZZ] 在windows上编译Mesa3d opengl32库

    在windows上编译Mesa3d opengl32库 cheungmine http://blog.csdn.net/ubuntu64fan/article/details/8061475 Mesa ...

  3. 利用openssl管理证书及SSL编程第2部分:在Windows上编译 openssl

    利用openssl管理证书及SSL编程第2部分:在Windows上编译 openssl 首先mingw的环境搭建,务必遵循下文: http://blog.csdn.net/ubuntu64fan/ar ...

  4. 在windows上编译wireshark源代码

    终于在windows上成功编译了wireshark源代码,个中酸辛,都是泪..只能说要多试! windows上编译wireshark共用到三个东西:wireshark源代码.python.cygwin ...

  5. 在windows 上编译部署Rap2

    在windows 上编译部署Rap2 引言 安装需要的环境 安装后端站点 创建数据库 在全局安装pm2 和 typescript 配置mysql,redis 数据库链接配置 初始化 编译 初始化数据库 ...

  6. 在windows上编译MatConvNet

    有个BT的要求,在windows上使用MatConvNet,并且需要支持GPU. 费了些力气,记录一下过程(暂不支持vl_imreadjpeg函数) 在这里下载MatConvNet,机器配置vs201 ...

  7. 如何在 Windows上编译Objective-C

    Objective-C现在几乎已经变成了苹果的专利了,可以直接在苹果的Xcode上编译Objective-C程序,但是在Windows平台下的编译工具就寥寥无几了,本身这种语言用的人就不是很多.今天在 ...

  8. Windows 上编译 corefx 源码生成 Linux 上可用的 System.Data.SqlClient.dll

    最近在排查一个奇怪的 EF Core 查询速度慢的问题,需要在 corefx 2.2.3 的 System.Data.SqlClient 源码中打点. github 上签出 corefx 的源代码,运 ...

  9. 在Windows上编译和调试CoreCLR

    生成CoreCLR - Windows篇 本文的唯一目的就是让你运行Hello World 运行环境 Window 7+ Visual studio 2015 确保C++ 工具已经被安装,默认是不安装 ...

随机推荐

  1. overflow与underflow

    是新近的firefox浏览器中支持overflow, underflow这两个事件,当某一元素的大小超出父元素的显示范围就会触发overflow事件,如果从超出显示再变回不超出的状态则触发underf ...

  2. iOS学习之UINavigationController详解与使用(二)页面切换和segmentedController

    iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem是上篇,我们接着讲UINavigationController的重要作用,页面的管理和切换. ...

  3. 使用Eclipse搭建JavaWeb开发环境的几个基本问题

    Eclipse搭建JavaWeb开发环境 eclipse是一个用于java程序开发的ide软件,tomcat是一个运行javaweb应用的服务器软件,使用eclipse开发javaweb应用的时,首要 ...

  4. Apache Flume的介绍安装及简单案例

    概述 Flume 是 一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的软件.Flume 的核心是把数据从数据源(source)收集过来,再将收集到的数据送到指定的目的地(sink).为了保证 ...

  5. Oracle中针对中文进行排序

    在oracle 9i之前,对中文的排序,是默认按2进制编码来进行排序的. 9i时增加了几种新的选择: 按中文拼音进行排序:SCHINESE_PINYIN_M 按中文部首进行排序:SCHINESE_RA ...

  6. Android开发实战之底部Dialog弹出效果

    在Android开发中,有很多情况下我们需要使用到对话框,遗憾的是,安卓自带的对话框样式不能满足我们实际的需要,所以往往需要我们自定义对话框,具体做法:写一个对话框继承自Dialog实现他的一个构造方 ...

  7. GameObject.Find 使用技巧

    GameObject.Find是全局搜索 如果你已经知道这个元件在哪个元件里面的话,且担心场景中有重名元件,可以这样写 GameObject.Find ("Canvas/Panel/Imag ...

  8. php static 变量声明

    <?phpfunction test($key){ static $array = array();  /* 静态变量是只存在于函数作用域中的变量,注释:执行后这种变量不会丢失(下次调用这个函数 ...

  9. python时间处理详解-乾颐堂

    1.获取当前时间的两种方法: import datetime,time now = time.strftime("%Y-%m-%d %H:%M:%S") print now now ...

  10. VC6.0 中 添加/取消 块注释的Macro代码

    SAMPLE.DSM是微软提供的样例,使用的是vb语言.其中的 CommentOut 函数,是支持块注释的,可是这种/**/的注释方式,有时候用起来不是很方便,因为两个/会因为一个/而终止.对于大块代 ...