Windows下 编译Blender2.6

别等时光非礼了梦想. 提交于 2019-12-06 21:27:13

编译方法参考官方教程:http://wiki.blender.org/index.php/Dev:Doc/Building_Blender/Windows

本次编译的环境和准备的软件如下:
Windows 7 64bit
VS2008 SP1(注意,必须是VS2008,其他版本无法编译,因为官方依赖库比如boost是vc90的)
Tortoise SVN
CMake( 请下载64bit版本的,不能用32位的)
请记住我们所有的软件和配置都应该是64位的

1. 使用Tortoise SVN下载代码和依赖库。

在D盘根目录创建目录BlenderSVN,然后下载代码:

cd D:\BlenderSVN
svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/blender blender


因为是编译64位的Blender,所以使用如下命令下载依赖库:
svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/win64 lib/win64

因为依赖库非常大,有2.8G,所以下载起来很长时间。下载过后的目录必须是这样的:
    BlenderSVN
    ----blender
    ----lib
    -------win64
2. 使用CMake生成工程文件。
打开CMake,设置Source Code目录:BlenderSVN/blender,设置binaries目录:BlenderSVN/binary。点击Configure,选择我们的目标编译器:Visual Studio 9 2008 Win64. 如果没有错误,就可以点击Generate生成工程文件。

3.打开生成的工程文件,启动编译,即可。最后运行INSTALL这个项目。

遇到的问题:
a.第2步的时候,Configure时遇到:
 The C compiler identification is unknown 
 The CXX compiler identification is unknown.
即使我们选择了VS9 2008 Win64,也可能会出现无法识别编译器的情况。这个的出现,一般是因为CMake会在TEMP目录下缓存以前的配置,解决办法是:结束MSBuild32.exe进程,并且删除TMP和TEMP这两个环境变量,重启CMake,再File->Delete Cache删除Cmake的缓存,重新configure。

b.编译时遇到Can't open include file <unordered_map>.需要配置包含目录:
右击extern_ceres->属性->c/c++->附加包含目录,添加两条:
D:\BlenderSVN\lib\Win64\boost\include\boost
D:\BlenderSVN\lib\Win64\boost\include\
并且,将出现错误包含的地方的代码由:

#    include <unordered_map>
#    include <unordered_set>

改为:

#    include <tr1/unordered_map.hpp>
#    include <tr1/unordered_set.hpp>



c.编译时遇到isspace not a member of std
直接在出错的地方,删除std::即可,即把std::isspace改为 isspace


d.编译的时候,出现:error MSB8014: Execution path (C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\x86_amd64) could not be found.
这个事由于64bit的VS编译工具默认没有安装。解决办法控制面板->程序和功能->VS2008->卸载/更改->添加删除功能->VisualC++,点击X64编译器和工具,然后更新即可。
参考:
http://stackoverflow.com/questions/5901286/unable-to-build-c-cli-app-using-vs-2010-net-3-5-and-64-bit


如果遇到其他错误,则可能是目录的结构不对,或者是软件不是64bit版本,请注意检查。




易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!