由于要用到网上的一个插件。虽然现在PBRT已经出了V2版本。仍然需要编译下PBRTV1版本。V1的各个版本功能相似,只是不断的修正BUGS的过程。因此选择了V1的最后一个版本PBRTV 1.05。

1)首先从官网上下载:

pbrt-src-1.05.zip, for Windows (620kB)

2)将文件解压到目录

c:\pbrt-v1

3)在Windows下编译OpenEXR

http://blog.csdn.net/lqhbupt/article/details/7859034

4)先编译项目core。通过后再编译其他项目

在目录C:\pbrt-v1\pbrt-1.05\win32下打开pbrt.sln

4.1)将配置属性设置为All Configurations。

项目属性->Configuration Properties->General->IntermediateDirectory设置为../tmp/$(ProjectName)/

Output Directory设置为../../bin

4.2) 在core项目的属性里VC++Directories中的Include Directories中加入:C:\Deploy\include

core项目右键->Properties->Linker->General->AdditionalLibrary Directories改为C:\Deploy\lib\Win32\Release

4.3)由于我用的是ZLIB-1.2.5版本,其对应的dll和lib分别为zlibwapi.dll和zlibwapi.lib

将core右键->Properties->Linker->AdditionalDependecies,将其改为:

Half.lib

Iex.lib

IlmImf.lib

Imath.lib

zlibwapi.lib

IlmThread.lib

4.4)在core目录下新建文件unistd.h。内容如下:

#ifndef _UNISTD_H

#define _UNISTD_H

#include <io.h>

#include <process.h>

#endif /* _UNISTD_H */

4.5) 在core右键->Properties->C/C++->Preprocessor->PreprocessorDefinition部分加入OPENEXR_DLL

4.6) 在core/exrio.cpp文件中,注释掉

#define hypotf hypot

4.7)编译core项目成功

4.8) 将renderer右键->Properties->Build Events->Post-BuildEvent中的zlib1.dll换成zlibwapi.dll。并将zlibwapi.dll放在解决方案目录下,即win32/目录下。

4.9)修改所有项目的Output Directory为../../bin。

Intermediate Directory为../tmp/$(ProjectName)/

4.10)Build整个解决方案。

5)需要把C:\Deploy\bin\Win32\Release中的所有dll文件拷贝到C:\pbrt-v1\pbrt-1.05\bin中,并设定系统变量PBRT_SEARCHPATH指向C:\pbrt-v1\pbrt-1.05\bin

下载一个测试用的 pbrt 脚本文件,再写个批处理脚本 pbrt.cmd,都放到PBRT 文件夹下的 \scenes 文件夹下,来测试下pbrt 程序吧,批处理脚本如下:

SET PATH=%PATH%;%PBRT_SEARCHPATH%

pbrt.exe sharp.pbrt

"..\...\bin\exrdisplay.exe" sharp.exr

遇到问题及解决方案:

1)c:\pbrt-v1\pbrt-1.05\core\exrio.cpp(29):fatal error C1083: Cannot open include file: 'ImfInputFile.h': No such file ordirectory

在core项目的属性里VC++Directories中的Include Directories中加入:C:\Deploy\include

2)c:\pbrt-v1\pbrt-1.05\core\pbrtlex.cpp(771):fatal error C1083: Cannot open include file: 'unistd.h': No such file ordirectory

在core目录下新建文件unistd.h。内容如下:

#ifndef _UNISTD_H

#define _UNISTD_H

#include <io.h>

#include <process.h>

#endif /* _UNISTD_H */

3)c:\program files(x86)\microsoft visual studio 10.0\vc\include\math.h(167): error C2733: secondC linkage of overloaded function 'hypot' not allowed

解决方法,在exrio.cpp文件中,注释掉

#define hypotf hypot

4)将core项目右键->Properties->Linker->General->AdditionalLibrary Directories改为C:\Deploy\lib\Win32\Release

5)由于我用的是ZLIB-1.2.5版本,其对应的dll和lib分别为zlibwapi.dll和zlibwapi.lib

将core右键->Properties->Linker->AdditionalDependecies,将其改为:

Half.lib

Iex.lib

IlmImf.lib

Imath.lib

zlibwapi.lib

IlmThread.lib

6)1>exrio.obj : errorLNK2001: unresolved external symbol "private: static union half::uif const* const half::_toFloat" (?_toFloat@half@@0QBTuif@1@B)

1>exrio.obj : error LNK2001: unresolved external symbol"private: static unsigned short const * const half::_eLut"(?_eLut@half@@0QBGB)

解决方案:在core右键->Properties->C/C++->Preprocessor->PreprocessorDefinition部分加入OPENEXR_DLL

7)C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets(392,5):error MSB6003: The specified task executable "link.exe" could not berun. The process cannot access the file'C:\pbrt-v1\pbrt-1.05\win32\Projects\Debug\link.read.1.tlog' because it is beingused by another process.

原因:多个项目将tlog文件输出到同一目录,导致冲突。

解决方法:发现所有项目的IntermediateDirectory指定到不同的目录。项目属性->ConfigurationProperties->General->Intermediate Directory。原来为Debug\,将其改为../tmp/$(ProjectName)/

Windows下编译安装PBRT V1.05相关推荐

  1. Windows下编译安装SALOME

    SALOME是一套开源跨平台的CAE软件集成开发平台.本文旨在探索在Windows下编译安装SALOME核心模块的方法. 注1:文章内容会不定期更新,敬请关注. 注2:限于笔者研究水平,难免有不当之处 ...

  2. Windows下编译安装kafka管理工具 kafka-manager (详细)

    工具简介: kafka-manager的Github项目地址(项目功能等介绍):https://github.com/yahoo/kafka-manager A tool for managing A ...

  3. linux windows 编译安装,Windows下编译安装OpenEXR(x86版本)

    由于最近需要用到一些关于OpenEXR的东西,需要在Windows安装相关的组件.经过一番尝试,发现需要以下步骤. 1)下载相关组件 在C盘下建立一个目录libs-x86,从OpenEXR官网http ...

  4. 在windows下编译安装rebar

    先安装好git bash 在你选择好的目录右键鼠标,运行 Git Bash Here 依次输入命令 这里用的是码云的连接,git实在太慢了! git clone https://gitee.com/r ...

  5. freerdp 解压安装_Ubuntu下编译安装运作FreeRdp连接Windows

    Ubuntu下编译安装运行FreeRdp连接Windows. linux下编译源码进行USB重定向到远程桌面的测试,经过参数的正确配置,可以正常的重定向.具体的操作步骤如下: ⑴在虚拟机上安装git, ...

  6. Open Inventor: Windows系统下编译安装Quater

    Windows系统下编译安装Quater 济南友泉软件有限公司 一.工具安装 1.1 CMake CMake是一个用于生成不同平台下构建项目的工具.建议使用3.0版本之后的CMake.下载链接 1.2 ...

  7. Windows下编译Chrome V8

    主要还是参考google的官方文档: How to Download and Build V8 Building on Windows 同时也参考了一些其它的中文博客: 脚本引擎小pk:SpiderM ...

  8. 在Ubuntu下编译安装atom编辑器

    2019独角兽企业重金招聘Python工程师标准>>> 今天一大早就在开源中国首页看到了atom编辑器可以下载使用的消息,打开一看只提供Mac版的安装包.于是去Github上看了看, ...

  9. Windows下编译 Hadoop

    Windows下编译 Hadoop-2.9.2 系统环境 系统: Windows 10 10.0_x64 maven: Apache Maven 3.6.0 jdk: jdk_1.8.0_201 Pr ...

最新文章

  1. 不相交集类以及应用迷宫生成
  2. 下列哪个可以选中矩形文字块_PPT很难?一个字母就可以搞定
  3. 【Flutter】Dart 技巧 ( 独立主函数入口 | 可空类型判定 | 默认值设定 )
  4. Android App解决卡顿慢之内存抖动及内存泄漏(发现和定位)
  5. ASP.NET MVC (一、控制器与视图)
  6. GCC __builtin_expect与kernel指令序列优化
  7. linux系统如何使用fork函数创建子进程
  8. 5 年 Python 的我,总结了这 90 条写 Python 程序的建议
  9. java删除表操作,JDBC删除表实例
  10. java long更大_java – 比Long.MAX_VALUE大的长度
  11. 测试只描述现象,不下结论
  12. rs485如何使用_气体检测仪rs485和4-20ma接线方式有什么区别,该如何选择最优的接线方式...
  13. c语言从入门到精通 PPT,C语言从入门到精通第1章讲述.ppt
  14. R Fisher精确检验
  15. ASP.NET MVC2 视频教程下载地址
  16. 51nod1359 循环探求
  17. 你真的打算凑合过完这一生吗(转)
  18. 代沐研:渡尽劫波非农在,空头有望脱苦海
  19. 删除非空目录linux_如何在Linux中删除空的非空目录
  20. 自动生成用于测试和评估自动驾驶汽车的各种挑战性场景

热门文章

  1. 计算机科学与研究期刊,《计算机科学与应用》期刊
  2. Reveal使用原则
  3. 办公:Word 2003的九个新奇玩法
  4. 从业务开发中学习和理解架构设计
  5. 二本计算机调剂学校,考研调剂接受二本学校的211大学
  6. 以“乌云网关闭”为视角,解读《网络安全漏洞管理规定(征求意见稿)》
  7. 每日一句英语:I don't think I have the courage to tell him the bad news
  8. Oracle 12c 用户密码过期设置的一些问题
  9. chmod 报错Operation not permitted
  10. 方法论:带着问题找答案