编译方法参考官方教程: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
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>
直接在出错的地方,删除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版本,请注意检查。
来源:oschina
链接:https://my.oschina.net/u/574785/blog/208565