Win7 VS2017编译Blender2.79
去年在VS2013环境编译过一次,重装系统后换了VS2017,正好刚编译完Godot3.0.2,顺手把Blender也编译了吧。
官方Windows下编译指南
https://wiki.blender.org/index.php/Dev:Doc/Building_Blender/Windows
所需工具
Git for Windows
TortoiseSvn
CMake
首先用Git Clone Blender的源码,可能需要梯子工具,反正我用了,因为最近Clone Gayhub有第三方依赖库引用,不用梯子好像都失败了,我也不知道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
源码Clone完大概占678MB
Clone完blender源码,最好马上打包一份,以防以后没梯子时想用不好搞,毕竟体积不算小了,下载挺花时间的。
总之对我这种N线小破城市来说,速度的确不怎么友好,大城市的朋友请无视。
然后SVN下载预编译的第三方库文件,无需梯子
svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/win64_vc14 lib/win64_vc14
实际上装完TortoiseSvn,直接有右键,选SVN Checkout
写上路径就行了,要注意的一点是目录
blender
lib
要同级目录
所以,我直接在blender目录同级新建lib,再建立win64_vc14
变成
lib/win64_vc14
然后直接图形界面下载
https://svn.blender.org/svnroot/bf-blender/trunk/lib/win64_vc14
就行了
完成后大概有6.66GB,不确定是不是编译完之前的,总之大概4-6G的样子,只要TortoiseSvn中完成就行了
最后命令行再进入blender目录,注意要求cmake在Path环境变量中
make full nobuild 2017
之后就会在blender同级目录下生成
build_windows_Full_x64_vc15_Release
的VS2017工程了

打开Blender.sln,Debug下编译,经过慢长的等待
全部成功
F5调试,说找不到python36_d.dll
从
lib\win64_vc14\python\lib\python36_d.dll
复制一份到
build_windows_Full_x64_vc15_Release\bin\Debug
目录下
再次运行说还少OpenAL什么的,这时想到,应该是还要用到blender资源文件的一些东西,
所以直接就去下载一份Latest Builds
https://builder.blender.org/download/
写本文时,我用的是
Official New Compiler
blender-2.79-5389964-win64-vc14.zip
解压后,把所有dll和2.79资源目录一起复制到
build_windows_Full_x64_vc15_Release\bin\Debug
再次F5成功了
然后在blender项目源码里,creator.c的
int main函数上下断点,F5再跑,成功断下,F10步过,等操作,F5继续运行,都OK。

2018.05.05补张代码结构图
https://www.blender.org/bf/codelayout.jpg

Win7 VS2017编译Blender2.79的更多相关文章
- Win7 VS2017编译Audacity2.1.3
最近比较热衷折腾大型开源软件编译,因为在逐渐用开源软件替换盗版软件,除去盗版用着不安全的原因外,主要还是因为开源软件有源码,可以学习研究,另外就是体积小. 像Matlab每次装完都用不上什么功能,体积 ...
- Win7 VS2017编译PBR渲染引擎google filament
按照官方说明 https://github.com/google/filament 前置工具包 Windows 10 SDKVisual Studio 2017Clang 6Python 3.7Git ...
- Win7 VS2017编译bgfx图形API
官方的编译指南在这个页面 https://bkaradzic.github.io/bgfx/build.html#quick-start 目前的版本编译比较简单,下载3个项目,放于同级目录下 http ...
- Win7 VS2017编译magnum及例子
magnum是一个开源的图形中间件 Lightweight and modular C++11/C++14 graphics middleware for games and data visuali ...
- Win7 VS2017编译Godot3.0.2和2.1.4
千呼万唤屎出来,Godot终于发布3.0版本的源码了,今天是2018年3月17日,自去年接触过后,一直没事就刷刷Gayhub,看看3.0什么时候更新,刷了一年也没结果. 今天上Youtube无意中搜了 ...
- windows 平台使用 VS2017 编译openssl源码
windows 平台使用 VS2017 编译openssl源码 1)依赖安装 安装 perl 脚本解释器 下载 http://libevent.net/download 安装 nasm 汇编器 C:\ ...
- 32位win7+vs2008编译mysql 5.6.22源码并安装
以下这部分安装说明是来自http://www.2cto.com/database/201407/316681.html的win7+vs2010源码编译mysql,文章最后会说明用vs2008编译遇见的 ...
- windows 平台使用 VS2017 编译 libevent 源码
一 依赖库编译 先要将其依赖的库编译好,其中openssl需要编译到libevent中,编译成libevent_openssl.lib库,zlib在新版本中只有示例用到. 1)windows 平台使用 ...
- VS2017 编译 Visual Leak Detector + VLD 使用示例
起因 一个Qt5+VS2017的工程,需要进行串口操作,在自动时发现一段时间软件崩溃了,没有保存log,在 debug 的时候发现每运行一次应用占据的内存就多一点,后来意识到是内存泄漏了.这个真是头疼 ...
随机推荐
- [Linux]系统管理: 进程管理(ps/top/pstree/kill/pkill), 工作管理, 系统资源查看, 系统定时任务
进程管理:查看与终止 进程查看 1. 进程是正在执行的程序或命令. 2. 进程管理的作用: 判断服务器健康状态, 查看系统中所有进程 杀死进程 3. 查看系统中所有进程 ps aux # 查看系 ...
- binlog2sql实现MySQL误操作的恢复
对于MySQL数据库中的误操作删除数据的恢复问题,可以使用基于MySQL中binlog做到类似于闪回或者生成反向操作的SQL语句来实现,是MySQL中一个非常实用的功能.原理不难理解,基于MySQL的 ...
- S8-codelab02
import news_cnn_model import numpy as np import os import pandas as pd import pickle import shutil i ...
- 使用c#调整图片质量
//参数: 原始图片,保存路径,压缩比 private void CompressImage(MagickNet.Image img,string toPath, long ratio) { usin ...
- 解题(GoUpstairs -- 上楼梯)
题目描述 有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶.2阶.3阶.请实现一个方法,计算小孩有多少种上楼的方式.为了防止溢出,请将结果Mod 1000000007 给定一个正整数int n, ...
- Apache Flink 分布式运行时环境
Tasks and Operator Chains(任务及操作链) 在分布式环境下,Flink将操作的子任务链在一起组成一个任务,每一个任务在一个线程中执行.将操作链在一起是一个不错的优化:它减少了线 ...
- X1226 和 AT24C16 地址冲突问题
这几天开发eeprom功能的时候,利用单片机的I2C接口访问AT24C16.遇到一个问题: 发现AT24C16的最后一页写不进去.表现为写任何值后,再读取都是0. 经过几天的排查,发现是应为在I2C总 ...
- 关于HTML5中的sessionStorage的会话级缓存使用
sessionStorage作为HTML5的Web Storage的两种存储方式之一. 用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数 ...
- java 编程英语单词,语句
记录一下java 编程工作学习中常用的英语汇总 in other words: 换句话说 dangle :悬挂 separated:分开的 distinct:明显的,独特的 actual :实际的 i ...
- HTTP协议转码
为什么要有转义的功能? 一些特殊字符需要转义,才能被访问,否则变为空格 UrlEnCode与UrlDeCode 有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的 ...