当前位置: 首页 > 工具软件 > LuxRender > 使用案例 >

编译Luxrender

鲜于凯歌
2023-12-01

最近有人叫我编译这个渲染引擎,据说很难编译,我编译无数代码,一般别人的代码拿来编译都很难受,因为作者的机器跟我的机器配置上都有些不痛,可能会丢了什么库之首先上Luxrender的官网,一般的开源项目都有个什么文档之类的东西,一般也会教怎么去编译代码。找找还真有,文档写得太他妈精辟了,就一点点,这也符合我的风格,少说明简单。

类的一大堆问题,有时可能是编译器的不同,有可能有出现什么符号没定义之类的问题。所以编译代码都是很难受的事情。耗时还耗精力。

闲话不扯了之间正题。

Luxrender 官网:http://www.luxrender.net/en_GB/index

编译的文档:http://www.luxrender.net/wiki/index.php?title=Building_on_Windows

据说我的机器还是WindowsXP所以找Windows下的文档。

然后按它说的方法去干。

1.下载TortoiseHG

2.安装好后在某个盘里面新建个文件夹,这谁都会。我的文件夹名就叫Luxrender

3.然后选中那个文件夹<Luxrender>右击。鼠标移动到TortoiseHG,会发现有个叫Clone…的东西,点击

4.然后再source path(也就是源路径)里面输入http://src.luxrender.net/lux/

5.在destination(也就是目标路径)里面输入 BASE/lux (其实BASE可要可不要,只是lux文件跟windows和luxrays要在同一级)。

6.然后点击Clone(克隆)就可以了

7.然后就是等待

8.等待

9.再等待

10.等它完成了,然后我们还是依照3的做法,选中文件夹<Luxrender>移动到TortoiseHG,然后Clone…

11.在source path (源路径)里面输入 http://src.luxrender.net/windows/

12.在destination (目标路径)里面输入BASE/windows (保证windows文件夹跟lux同级就可以了)

13.点击Clone之后等吧

14.完成后再按照3的做法选中文件夹<Luxrender>右击移动到TortoiseHG上然后Clone

15.在source path 里面输入http://src.luxrender.net/luxrays/

16.在destination 里面输入 BASE/luxrayse (保证luxrays跟lux同级就可以了)

17.然后点击Clone就可以开始无限的等待

18.等都完成了之后,就打开你的Visual Studio 2008的Command prompt,VC2005的你尽快装个2008吧,VC2005难受死你。~_~

19.然后CD到你的windows文件夹。懂cd的跳过去:一般打开 Command prompt上的默认路径是你的Visual Studio的安装路径。比如我的是在D盘,但是我的Luxrender在G盘所以要换盘,在黑屏上输入 G: 。如果你的Luxrender在E盘就输入 E: 。如此类推。然后就是 cd G:\luxrender\BASE\windows\ 我的是这样,如果你的luxrender文件夹是在E盘里面的SRC文件夹中就输入 cd E:\SRC\luxrender\BASE\windows\。

20.接着你会看到你的windows文件夹中有个叫做 getdeps.bat 的文件。在黑屏上输入 getdeps

21.接着又是选择什么的反正getdeps就是把所有的luxrender需要的类库之类的都下载下来,然后解压到一个叫做deps的文件夹里面,deps文件夹是在Luxrender\BASE\文件夹中,也就是跟你的lux、windows、luxrays同一级。

22.Get完之后就是导入注册表,双击windows文件夹里面的build-vars.reg,然后确定导入就行了。其实它就是把像LUX_WINDOWS_BUILD_ROOT这样的环境变量设置一下。当然你也可以自己一个一个设置。

23.接下来的事情就是build你下下来的东西 (<deps\>下的东西build一下,比如boost)。在你的Command prompt 里面输入build-deps-x86.bat。(惭愧我还是用32位的WindowsXP)。你不要尝试使用cmd.exe去build,难受的是你。

24.在无尽的等待回来后,你觉得差不多了,但是厄运才刚刚开始……..

 

开始编译

1.然后就是编译,进入BASE/windows然后打开lux.sln

2.编译肯定不会成功的,但是要一边编译一边看有什么问题。

问题:

1.出现isatty()找不到

加入#include <io.h>

将isatty改成   _isatty()

2.环境变量没设置,会有这个问题的,所以加上它提示的环境变量

3.Yacc返回错误,说系统找不到某个东西。要把 BASE/windows/Projects里面的那个project文件(.vcproj)用文本文件打开然后将"$(InputDir)/$(InputName)-hxx.cpp"的反斜杠(/)去掉。有几个文件要改这个的。当你遇到了就改一下。就是这个问题。

4.moc.exe找不到,就是QT没有编译好。打开visual studio 2008 的Command prompt 打开,然后cd到QT的根目录比如我的是G:\Luxrender\BASE\deps\x86\qt-everywhere-opensource-src-4.6.2输入configure -debug-and-release -opensource -platform win32-msvc2008完成之后在输入nmake

5.miss python31.lib

   拷贝       python31.lib

       From

               G:\Luxrender\BASE\deps\x86\Python-3.1.2\PCbuild\  

   To

          G:\Luxrender\BASE\deps\x86\Python-2.6.6\PCbuild\

6.miss libboost_python-vc90-mt-lib

      create foulder <python2> in

             G:\Luxrender\BASE\deps\x86\boost_1_43_0\stage

      copy

             libboost_python-vc90-mt-lib

             libboost_python-vc90-mt-1_43.lib

             libboost_python-vc90-mt-gd-1_43.lib

             libboost_python-vc90-mt-gd.lib

      from

             G:\Luxrender\BASE\deps\x86\boost_1_43_0\stage\python3\lib\

      to

             G:\Luxrender\BASE\deps\x86\boost_1_43_0\stage\python2\lib\

       应该来说你就可以全部编译过去了。

 类似资料: