BlenderCN论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3456|回复: 8

windows下不完美编译blender(git + cmake + vs2013)

[复制链接]
发表于 2014-1-20 00:22:58 | 显示全部楼层 |阅读模式
本帖最后由 墨阳 于 2014-1-20 13:33 编辑

这两天在k大的指导下总算是成功编译了一个版本,虽然还有些模块没编译

简述一下编译过程吧,希望后来人能少走些弯路,也算给自己留个笔记~


1.需要安装的软件
QQ截图20140119233720.png
安装vs2013,cmake,git ,svn 配置环境变量,这个不多说了(不加环境变量也可以 ,下面的命令都可以用gui操作)


2.下载源码
cd D:\src\blender
git clone git://git.blender.org/blender.git
cd blender
git submodule update --init --recursive
git submodule foreach git checkout master
git submodule foreach git pull --rebase origin master
cd .. #注意目录结构
svn checkout  https://svn.blender.org/svnroot/bf-blender/trunk/lib/win64_vc12/ lib\win64_vc12

3.在cmake中生成项目
QQ截图20140119235040.png
QQ截图20140119235152.png
在Configure过程中会有一些warning这不管它,最终看到
QQ截图20140119235356.png
代码Configure成功
然后,就可以点击Generate,生成vs工程项目了
QQ截图20140119235540.png
注意这个时候,有些包要去掉,不然编译会报错
我去掉的包有
opencollada  、libmv 、openal、smoke、fftw(正因为去掉了这些包,所以叫做不完美编译)


4.编译生成
在看到Generating done之后,到build目录,打开Blender.sln
QQ截图20140120000055.png
然后在解决方案上右击就可直接编译了
QQ截图20140120000148.png

不过我这儿编译期间有个报错,说事找不到libboost_date_time-vc90-mt-s-1_49.lib(这个错误我也挺纳闷的,为啥还要依赖vc90的库,这个库是最早用vs2010之前的版本编译的时候才会用到的,在win64\boost\lib这个目录下)
QQ截图20140120000605.png
解决这错误,我最终的办法是,打开blender这个项目的项目配置
QQ截图20140120001037.png
修改Linker -> Input ->  Additional Dependencies
QQ截图20140120001531.png
直接将这几个lib替换为 (目录自己改一下)

D:\src\blender\lib\win64_vc12\boost\lib\libboost_chrono-vc120-mt-s-1_55.lib
D:\src\blender\lib\win64_vc12\boost\lib\libboost_chrono-vc120-mt-sgd-1_55.lib
D:\src\blender\lib\win64_vc12\boost\lib\libboost_date_time-vc120-mt-s-1_55.lib
D:\src\blender\lib\win64_vc12\boost\lib\libboost_date_time-vc120-mt-sgd-1_55.lib
D:\src\blender\lib\win64_vc12\boost\lib\libboost_filesystem-vc120-mt-s-1_55.lib
D:\src\blender\lib\win64_vc12\boost\lib\libboost_filesystem-vc120-mt-sgd-1_55.lib
D:\src\blender\lib\win64_vc12\boost\lib\libboost_locale-vc120-mt-s-1_55.lib
D:\src\blender\lib\win64_vc12\boost\lib\libboost_locale-vc120-mt-sgd-1_55.lib
D:\src\blender\lib\win64_vc12\boost\lib\libboost_regex-vc120-mt-s-1_55.lib
D:\src\blender\lib\win64_vc12\boost\lib\libboost_regex-vc120-mt-sgd-1_55.lib
D:\src\blender\lib\win64_vc12\boost\lib\libboost_system-vc120-mt-s-1_55.lib
D:\src\blender\lib\win64_vc12\boost\lib\libboost_system-vc120-mt-sgd-1_55.lib
D:\src\blender\lib\win64_vc12\boost\lib\libboost_thread-vc120-mt-s-1_55.lib
D:\src\blender\lib\win64_vc12\boost\lib\libboost_thread-vc120-mt-sgd-1_55.lib
D:\src\blender\lib\win64_vc12\boost\lib\libboost_wave-vc120-mt-s-1_55.lib
D:\src\blender\lib\win64_vc12\boost\lib\libboost_wave-vc120-mt-sgd-1_55.lib
同时把相应lib的include的目录添加到该项目的c++附加包含目录里

QQ截图20140120133150.png

5.运行测试
在编译成功之后,在build\bin\Release 下生成了blender.exe
下载一个每天版的blender http://builder.blender.org/download/
QQ截图20140120001939.png
推荐下载这个吧,应该都行,其他我没测试,之所以用这个 主要是觉得都是v2013编译的应该兼容比较好吧
下载解压后,用我们自己编译生成的blender.exe替换原有的blender.exe,双击打开,哈哈,终于可以随时随地用最新版的blender了!
QQ截图20140120002129.png


















发表于 2014-1-20 00:32:34 | 显示全部楼层
感谢楼主指导!
回复 支持 反对

使用道具 举报

发表于 2014-1-20 00:36:14 | 显示全部楼层
2013还在实验阶段,官方还没放弃vs2008的官方支持
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-21 00:11:15 | 显示全部楼层
今天又编译了一次 去掉的五个cmake选项中
opencollada  、libmv 、openal、smoke、fftw
保留了libmv,编译通过,生成的blender.exe也从原来的42M变为了45M
还有opencollada 、openal、smoke、fftw四个默认模块没编译成功

同时有发现一很郁闷的问题
每次更改cmake选项生成配置 vs里reload项目后
上面文章中提到的替换libboost的事情都要重新做一次

哪位大大可以指点下 修改那些文件可以让cmake生成的项目
默认就是使用的win64_vc12下的boostlib ,而不是让我每次再修改一遍
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-25 13:51:33 | 显示全部楼层
opencollada 编译也没问题(应该本来就没问题,当时害怕出问题,一开始就把这个模块去掉了)
还剩openal、smoke、fftw 三个模块没编译
回复 支持 反对

使用道具 举报

发表于 2014-5-12 09:24:55 | 显示全部楼层
一个小提示:编译完成整改解决方案后,把INSTALL这个工程直接生成一次。然后,vs就会将所有的runtime放到release目录下面。这样就不用拷贝文件了。
回复 支持 反对

使用道具 举报

发表于 2014-12-7 21:19:14 | 显示全部楼层
照着过程来,成功了
具体环境:
win8.1,visual studio2013,
cmake configure时去掉了cycles_osl模块(在另一台win7上编的时候这部分会报错,这里就先直接去掉了)
最新的cmakelist里已经把帖子里提到的boost库更新到vc120版本,这部分不用再处理了。
回复 支持 反对

使用道具 举报

发表于 2014-12-7 22:39:12 | 显示全部楼层
cycles_osl 应该最新代码修复了这个问题。
回复 支持 反对

使用道具 举报

发表于 2016-1-14 12:31:29 | 显示全部楼层
2>G:\source\blender\source\blender\makesrna\intern\rna_wm.c : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
2>G:\source\blender\source\blender\makesrna\intern\rna_wm.c(271): error C2001: newline in constant
2>G:\source\blender\source\blender\makesrna\intern\rna_wm.c(272): error C2059: syntax error : '{'
2>G:\source\blender\source\blender\makesrna\intern\rna_wm.c(272): error C2001: newline in constant
2>G:\source\blender\source\blender\makesrna\intern\rna_wm.c(273): error C2001: newline in constant
2>G:\source\blender\source\blender\makesrna\intern\rna_wm.c(274): error C2001: newline in constant
2>G:\source\blender\source\blender\makesrna\intern\rna_wm.c(339): error C2001: newline in constant
2>G:\source\blender\source\blender\makesrna\intern\rna_wm.c(340): error C2001: newline in constant
2>G:\source\blender\source\blender\makesrna\intern\rna_wm.c(341): error C2001: newline in constant
2>G:\source\blender\source\blender\makesrna\intern\rna_wm.c(342): error C2001: newline in constant
2>G:\source\blender\source\blender\makesrna\intern\rna_wm.c(2245): fatal error C1004: unexpected end-of-file found
3>------ Build started: Project: bf_rna, Configuration: Debug x64 ------

遇到这个问题的话,是因为 source\blender\makesrna\intern\rna_wm.c 文件的字符编码不对,文件里有上下左右箭头符号,非ASCII字符集。
        {LEFTARROWKEY, "LEFT_ARROW", 0, "Left Arrow", "←"},
        {DOWNARROWKEY, "DOWN_ARROW", 0, "Down Arrow", "↓"},
        {RIGHTARROWKEY, "RIGHT_ARROW", 0, "Right Arrow", "→"},
        {UPARROWKEY, "UP_ARROW", 0, "Up Arrow", "↑"},

解决方案如下:
将该文件另存为 UTF-8 with BOM 编码即可。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Blender最新中文教学视频|Blender头条|小黑屋|手机版|Archiver|Blender中国 ( 蜀ICP备17002929号 )360网站安全检测平台

GMT+8, 2019-1-23 16:39 , Processed in 0.022514 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表