参考官方文档:Building Blender/Windows - Blender Developer Wiki
1. 准备必要工具
1.1 Visul Studio
如果没有,需要从微软VisulStudio官网上下载VS2019并安装。
安装时至少勾选 “使用C++的桌面开发”
1.2 CMake
如果没有,需要从CMake官网上下载,我选择了Windows64位安装版:
另外记得安装时勾选 Add CMake to the system PATH for all users.
1.3 TortoiseSVN
从TortoiseSVN官网上下载
2. 从GIT上得到源码
Blender的GIT地址:blender/blender: Official mirror of Blender
虽然可以选择直接下载源码,但还是建议使用GIT的方式“拉”下来。
如果还没有GIT则需要下载:
GIT:https://git-scm.com/
TortoiseGit:https://tortoisegit.org/
3. 从SVN上得到库文件
首先需要保证目录是正确的。官方文档指出目录应该是:
blender/ # Blender source code from Git, git://git.blender.org/blender.git
lib/win64_vc15 # Precompiled 64-bit libraries from Subversion, https://svn.blender.org/svnroot/bf-blender/trunk/lib/win64_vc15
即【blender源代码文件夹】和【lib文件夹】平级:
在lib/win64_vc15
下右键使用SVN的checkout
在地址中填入https://svn.blender.org/svnroot/bf-blender/trunk/lib/win64_vc15
随后就是漫长的等待,我这边下载了8GB的大小,等了挺久。
。。。
4. 学习使用cmd
使用方法:
【Windows键】+【R】,然后输入 cmd.exe:
(你必须使用cmd而不是powershell或是其他什么shell,否则之后的指令有可能失败)
基本上,使用时需要:
- 切换到blender源代码所在的盘符(如在D盘就是
D:
) cd
到源代码的目录
在源代码目录中有一个make.bat
(在之后会用到它):
使用make help
可以查看其功能:
5. 建立 Visul Studio 工程文件
在cmd中输入make nobuild
:(官方文档写的是make full nobuild
但运行结果不符合预期)
运行结束后应该提示生成了工程文件的位置:
应该是一个和【blender源代码文件夹】与【lib文件夹】都平级的位置
其中可以看到生成了VS的sln文件:
接下来打开Blender.sln
6. 首次编译时运行的操作
打开之后,下面的步骤非常重要,需要执行:
- 在“解决方案资源管理器”中,找到INSTALL工程,右键选择“生成”。这会拷贝所有需要的文件到Blender输出的文件夹。注意:对于每一个配置这个步骤需要至少做 一次,例如:如果你将 Debug 切换到 Release,你就需要再做一次这个步骤。
7. 完成
运行时注意设置blender
为启动项目
然后就可以开始调试运行了。
问题记录
1. 建立VS工程的命令
官方文档写的是make full nobuild
,但我试了之后没有预期的效果
(忘记截图,待补全)
我试了make nobuild
,反而结果和文档记录的一致
2. 首次编译运行INSTALL错误(locale不明原因被删除内容)
146>CMake Error at source/creator/cmake_install.cmake:48 (file):
146> file INSTALL cannot find
146> "D:/000_NewNewWorkSpace/BlenderSrc/blender/release/datafiles/locale/languages":
146> File exists.
146>Call Stack (most recent call first):
146> cmake_install.cmake:101 (include)
146>
146>
146>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(153,5): error MSB3073: 命令“setlocal
146>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(153,5): error MSB3073: "C:\Program Files\CMake\bin\cmake.exe" -DBUILD_TYPE=Release -P cmake_install.cmake
146>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(153,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
146>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(153,5): error MSB3073: :cmEnd
146>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(153,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
146>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(153,5): error MSB3073: :cmErrorLevel
146>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(153,5): error MSB3073: exit /b %1
146>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(153,5): error MSB3073: :cmDone
146>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(153,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd
146>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(153,5): error MSB3073: :VCEnd”已退出,代码为 1。
146>已完成生成项目“INSTALL.vcxproj”的操作 - 失败。
========== 生成: 成功 145 个,失败 1 个,最新 0 个,跳过 0 个 ==========
查看发现locale
文件夹被修改了(可能是之前的误操作引起的)
将文件revert回去:
之后再运行就可以成功
如果不管这个错误,则虽然blender
项目可以编译成功,则运行时会出现提示缺少多个dll
就算拷贝所需的dll文件到exe位置也不行。
因此必须解决这个问题