20240304-使用VS2022编译blender3.6.2源代码

20240304-使用VS2022编译blender3.6.2源代码

一、软件环境

  • Win10 x64 22h2 June
  • VS2022 v17.9.0
  • CMake v3.24.4
  • SVN v1.14.3
  • GIT v2.29.2
  • 标签:win10 22h2 vs2022 blender 63335
  • 分栏:C++

二、硬件环境

  • Win10 x64的PC台式机

三、获取源码

方法一

网盘下载源码,版本v3.6.2。

1、baidunetdisk

baidunet>5-软件>T-图形图像>blender>v3.6.2>src>blender1-v3.6.2.zip

链接:https://pan.baidu.com/s/15pyULNKkYqEF_rkuXwcVpQ?pwd=3njy 
提取码:3njy 

2、其他位置

onedrive>software>blender>v3.6.2>src>blender1-v3.6.2.zip。

wpsdrive>C-常用软件>T-图形图像>T-图像处理>blender>v3.6.2>src>blender1-v3.6.2.zip

方法二

git clone https://github.com/blender/blender.git
cd blender
git checkout v3.6.2

这里的路径是【D:\github\blender\blender】。

四、获取win64_vc15库文件(revision:63335)

新建目录【lib/win64_vc15】,lib和blender源码平级,如图1;

在这里插入图片描述

1. 方法一

需要svn客户端,这里推荐【TortoiseSVN】,设置【Icon Overlays】里的【Status cache】选项为【None】,否则下载速度会很慢。如图tor1:

在这里插入图片描述

在win64_vc15目录下checkout依赖库地址【https://svn.blender.org/svnroot/bf-blender/trunk/lib/win64_vc15】;

设置Revision为【63335】,依赖python310和libfftw.lib。如图tor2:

在这里插入图片描述

注意这个revision版本非常重要,不同的blender可能依赖不同的revision,如果只执行update获取的是最新版本,但不一定适用于指定版本。

方法二

1、baidunetdisk

5-软件>lib>blender>win64_vc15>win64_vc15-svn63335-wf20240305.7z

链接:https://pan.baidu.com/s/1fc5caORz_vMTvjFosIX9iA?pwd=knlm 
提取码:knlm 

2、其他位置

onedrive/lib/blender/win64_vc15/win64_vc15-svn63335-wf20240305.7z

五、执行make生成VS工程文件

方法一:

进入控制台:

cd D:\github\blender\blender
make.bat nobuild

运行成功后会显示生成路径,该路径下包含Blender.sln文件,如图1:

在这里插入图片描述

方法二:

打开cmake-gui.exe,设置Where is the source code为【D:/github/blender/blender】,设置Where to build为【D:/github/blender/build】

先点击configure,然后点击generate,如图3:

在这里插入图片描述

在build目录生成Blender.sln文件。

六、VS2022批生成

用VS2022打开Blender.sln文件,右键点击解决方案选择【批生成】,如图8:

在这里插入图片描述

勾选【INSTALL】【Release】,点击【生成】,如图9:

在这里插入图片描述

等待编译,大约25-30分钟。编译成功后如图4:

在这里插入图片描述

双击生成目录bin/Release下的blender.exe运行,如图10:

在这里插入图片描述

至此编译blender全过程结束。

七、遇到的错误

1、C2397从int转换到const unsigned __int64需要收缩转换

官方源码用VS2022编译会报这个错误(其他版本如果有相同错误也可以参考),如图5:

在这里插入图片描述

需将GHOST_Wintab.cc文件的第191行改为如下代码:

// m_pkts{queueSize} 原来的代码会报错
m_pkts{(const unsigned __int64)queueSize}
或者
m_pkts{static_cast<const unsigned __int64>(queueSize)}

改动后如图6:

在这里插入图片描述

再次编译即可。

参考文献

  • 《从源代码编译Blender》,YakSue,CSDN。

  • 《类型收窄error C2397:conversion from …》,林夕07,CSDN。

更新历史

2024-03-04 10:04:10,创建,云杉路11号。

2024-03-06 14:03:50,完成初稿,准备发布CSDN。

2024-03-07 22:53:28,正式发布,逸品香山。

相关推荐

  1. 第一章 使用CMake与VS2022编译Opencv

    2024-03-10 07:26:03       37 阅读
  2. Windows下 VS2022 编译OpenSSL 库

    2024-03-10 07:26:03       28 阅读
  3. ffmpeg 7.0 + vs2022 +windows编译

    2024-03-10 07:26:03       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-10 07:26:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-10 07:26:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-10 07:26:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-10 07:26:03       20 阅读

热门阅读

  1. 代码随想录day35:动态规划part3

    2024-03-10 07:26:03       22 阅读
  2. 【Demo】2D关卡房间随机生成

    2024-03-10 07:26:03       19 阅读
  3. C#面:几种注释类型

    2024-03-10 07:26:03       21 阅读
  4. Oracle单个用户连接慢问题排查

    2024-03-10 07:26:03       16 阅读
  5. DDL和DML

    2024-03-10 07:26:03       22 阅读
  6. UE5.1_TimeLine

    2024-03-10 07:26:03       25 阅读
  7. Linux下mysql添加用户并授权数据库权限

    2024-03-10 07:26:03       20 阅读