从源代码编译Blender

参考官方文档: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,否则之后的指令有可能失败)


基本上,使用时需要:

  1. 切换到blender源代码所在的盘符(如在D盘就是D:
  2. 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位置也不行。

因此必须解决这个问题

猜你喜欢

转载自blog.csdn.net/u013412391/article/details/113791779