blender源代码编译运行

news2024/9/22 7:28:08

其实在blender官网上已经给出了编译步骤https://wiki.blender.org/wiki/Building_Blender/Windows,由于在源码编译的过程中还遇到了很多问题,特此记录一下。

文章目录

    • 前提准备
    • 代码下载
        • 1. blender源码下载
        • 2. lib下载
    • 编译


前提准备

  1. Visual Studio2019或者2022(至少选择【Desktop Development with C++】),我自己是下载的2022版,这里记录了下载的方法及过程https://blog.csdn.net/changyana/article/details/128356682
  2. SVN: 我刚开始按照官网的指示下载了SlikSVN,但是最后过程中发现不会用,又卸载了SlikSVN,最后是下载了TortoiseSVN进行使用
    https://tortoisesvn.net/downloads.html,这个链接页面有TortoiseSVN的软件安装包,往下滑还有相应语言配置的安装包,建议下载一个中文语言的安装包
    如图,这是我下载的两个安装包,分别运行进行安装就可以啦
    在这里插入图片描述
  3. git(安装时要选择add Git to your PATH)
  4. CMake(安装时要选择Add CMake to the system PATH for all users),由于我之前安装了Qt,里边已经自带下载了cmake,所以本次没有单独去安装。

代码下载

1. blender源码下载

首先就是去github上下载源码:https://github.com/blender/blender

建议使用git命令来下载,而不是直接下载压缩包(这两者的区别是直接下载压缩包的话不利于后续与别人代码分享)
在这里插入图片描述
首先就是新建一个专门放blender代码的文件夹,然后进入该文件夹下进行下载blender源码
下载指令git clone https://github.com/blender/blender.git
在这里插入图片描述

然后就可以看到已经下载下来的源码。

2. lib下载

然后就是下载lib
打开cmd命令行,将目录切换至克隆的blender文件夹下,执行make update,他就会提醒你缺少lib,然后输入y进行lib的下载。
在这里插入图片描述
之后它会报错,【执行上下文错误:远程主机强迫关闭了一个现有的连接】。然后询问我,retry?我输入了y,重试了几次还是报这个错误,所以确定不是网络问题,所以我就输入了n让它结束。
然后就是利用上述下载TortoiseSVN进行手动下载lib。
具体操作如下:
进入lib\win64_vc15文件夹下,注意这个lib文件夹一定要与官网上下载的blender文件夹同级,如图:
在这里插入图片描述

如果没有lib文件夹,就自己建一个lib\win64_vc15文件夹。进入该文件夹下,如果里边有内容,就把所有的内容都删除
在这里插入图片描述

然后右键,选择svn checkout(就是这里,之前用的官网里的SlikSVN没有这个svn checkout的可视化选项,然后就不知道该怎么操作了,所以就卸载了SlikSVN,安装了TortoiseSVN)
在这里插入图片描述

打开之后输入如下网址
https://svn.blender.org/svnroot/bf-blender/trunk/lib/win64_vc15

在这里插入图片描述

然后就是等待lib的下载。
不过,由于lib太大了,总是会下载失败。。
在这里插入图片描述
解决办法就是:先clear up,再update,具体操作过程,请看我这篇文章:https://blog.csdn.net/changyana/article/details/128364335

然后等它完成!
在这里插入图片描述

文件下载好后,就是编译过程

编译

这里使用的是cmake进行编译,关于cmake是否下载成功,win+r输入cmd打开命令行,然后输入cmake --version如果能出现版本信息就表示具有cmake。

如图,在blender源码的文件夹下
在这里插入图片描述

在上方输入cmd,按回车打开命令行
在这里插入图片描述
可以看到打开的命令行路径刚好就在该文件夹下
在这里插入图片描述

然后输入make进行编译
在这里插入图片描述

以为会正常进行,但是自己终止了,编译失败。
在这里插入图片描述
然后进了下官网https://wiki.blender.org/wiki/Building_Blender/Windows,换了另一种编译方式,嘻嘻。
在这里插入图片描述
就在blender文件的目录下,git bash,然后运行./make.bat
在这里插入图片描述
在这里插入图片描述

然后就等待编译,大概要等二十分钟,编译完成后会自己结束。
在这里插入图片描述
然后在blender和lib的同级下会生成一个新的文件夹
在这里插入图片描述

打开之后会看到Blender.sln,然后用Visual Studio打开该文件

在这里插入图片描述

然后在CMakePredefinedTargets/INSTALL 工程上右键【生成】
在这里插入图片描述

然后等待生成完成,看到0失败就好啦!(如果有失败的,看报错,可能是缺失某个文件,然后全局搜索一下别的文件夹下有没有这个文件,如果有,复制一个过去,如果没有的话,就在网上找找别人已经编译成功的里边有没有这个文件,然后复制到自己的文件夹里,再进行重新生成)
在这里插入图片描述

然后将blender设为启动项目
在这里插入图片描述

然后看自己的VS设置的是什么模式,如果是Debug模式,就在bin\Debug文件夹下找,如果是Release模式,就在bin\Release文件夹下找。
在这里插入图片描述

然后我就可以在bin\Debug文件夹下找到blender.exe,双击打开就可以运行啦!
在这里插入图片描述

大功告成!!
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/99074.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Innodb存储引擎-执行流程分析和二阶段提交分析

文章目录执行流程分析基本流程WAL(Write-Ahead Log)write和fsync区别innodb_flush_logs_at_trx_commit & sync_binlog二阶段提交执行流程分析 基本流程 (1)连接,分析,优化,执行 客户端与MySQL Server建立连接,发送语句给MySQL Server&a…

2022.12.18 学习周报

文章目录摘要文献阅读1.题目2.摘要3.介绍4.RNNConventional Recurrent Neural Networks5.Deep Recurrent Neural Networks5.1 Deep Transition RNN5.2 Deep Output5.3 Stacked RNN6.实验6.1 训练6.2 结果与分析7.讨论深度学习GRU公式推导1.GRU前向传播2.GRU反向传播GRU代码实现…

关于数学中“函数(function)”的含义

目录 1. 问题 2. “function”是如何翻译成“函数”的? 3. “function”是谁引入数学中的,其意义何在? 3.1 “function”的词源 3.2 “function”引入数学中 3.3 “function”的含义 4. 常见的函数(Common Functions) 4.1 线性函数(L…

word页码如何设置为章节加页码,例如第一章第一页1-1、第二章章第一页2-1

由于用到word页码分章节页码的形式,从网上查了一下,质量真的很差,没有一篇文章讲清楚的,有的所答非所问,一怒之下,利用几个小时的时间解决问题并写下这篇文章,以供大家学习参考!&…

【JSP】

文章目录简介Scriptlet脚本小程序JSP的指令标签include静态包含include动态包含不传参传参JSP的四大域对象四种属性范围验证属性范围的特点EL表达式操作字符串操作集合emptyJSTL条件动作标签if标签choose、when 和 otherwise 标签迭代标签foreach格式化动作标签formatNumber标签…

NProgress 进度条的使用方法

安装NProgress 进度条 npm install nprogress --save-dev 在vue项目中mian.js中或router.js或axios.js: import NProgress from nprogress import nprogress/nprogress.css 使用NProgress进度条 NProgress.start(); :进度条开始; NProgr…

GCD和LCM

目录 一 整除 定义 性质 二 GCD 1)定义 2)性质 3)GCD编程 ①暴力法 ②欧几里得算法 ③更相减损术 ④Stein算法 三 LCM ①暴力法 ②最大公约数法 四 裴蜀定理 例题:裴蜀定理 一 整除 定义 a 能整除b,记为 a|b。其…

你还会想起这道题吗

链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 原神是由米哈游自主研发的一款全新开放世界冒险游戏。游戏发生在一个被称作「提瓦特」的幻想世界,在这里,被神选中的人将被授予「神之眼」,导引元…

m基于神经网络的气候预测matlab仿真,气候数据采用的BoM气候数据,神经网络为matlab编程实现不使用工具箱函数

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 人工神经网络(Artificial Neural Networks,简写为ANNs)也简称为神经网络(NNs)或称作连接模型(Connection Model&#xff09…

UICollectionView 实际使用

一. 使用UICollectionView制作书架 我想的书架是那种每一排都可以滑动的。暂时的想法是使用两个collectionView,第一个collectionView布置书架的每一排,第二个布置每一排内部的书。 布置外部的colletionView,这部分很简单,item的…

[ 数据结构 -- 手撕排序算法第五篇 ] 堆排序

文章目录前言一、常见的排序算法二、堆的概念及结构三、堆的实现3.1 堆的插入3.2 堆的删除四、堆排序4.1 向上调整建堆4.2 向下调整建堆4.3 建堆的时间复杂度4.4 堆排序五、堆排序的特性前言 手撕排序算法第五篇:堆排序! 从本篇文章开始,我会…

Java+JSP超市管理系统(含源码+论文+答辩PPT等)

项目功能简介: 该项目采用的技术后台框架:Servlet、JSP、JDBC、UI界面:BootStrap、jQuery、数据库:MySQL 系统功能 该系统共包含两种角色:员工和管理员。系统的主要功能模块如下: 1.系统管理 系统登陆、系统退出、修改…

《Mysql是怎样运行的》补充

19 第19章 从猫爷被杀说起-事务简介 19.1 事务的起源 19.1.1 原子性(Atomicity) 19.1.2 隔离性(Isolation) 其它的状态转换不会影响到本次状态转换,这个规则被称之为 隔离性 19.1.3 一致性(Consisten…

[ISITDTU 2019]EasyPHP rce替换字母

<?php highlight_file(__FILE__);$_ $_GET[_]; if ( preg_match(/[\x00- 0-9\"$&.,|[{_defgops\x7F]/i, $_) )die(ros will not do it);if ( strlen(count_chars(strtolower($_), 0x3)) > 0xd )die(you are so close, omg);eval($_); ?> 打开界面有两个i…

Mysql分布式锁(四)乐观锁实现并发

文章目录CAS - Compare And Swap业务改造1. 表结构新增version列2. 修改代码3. 测试问题1. 高并发情况下&#xff0c;性能极低2. ABA问题3. 读写分离情况下导致乐观锁不可靠CAS - Compare And Swap 先比较再交换&#xff0c;一般通过时间戳或者version版本号。 举例&#xff1…

【审计思路】如何快速定位SQLMS注入漏洞?

0x00 前言 MCMS是政府、教育等其他行业常用的CMS&#xff0c;应用广泛&#xff0c;但是底层的代码中仍然遗留不少的问题。这篇文章主要针对SQL注入进行审计并探讨如何快速定位SQL注入漏洞&#xff0c;以及其他工具的应用。 MCMS&#xff0c;是完整开源的Java CMS&#xff01;基…

[ vulhub漏洞复现篇 ] Apache Airflow Celery 消息中间件命令执行漏洞复现 CVE-2020-11981

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

基于asp.net企业网上办公自动化系统-计算机毕业设计

企业网上办公自动化通过对各办公自动化要素的闭环整合&#xff0c;实现了工作流、信息流、知识流和办公自动化系统的整合管理&#xff0c;提供了一个科学、开放、先进的信息化办公平台&#xff0c;实现办公自动化&#xff0c;并进行远程办公或在家办公。企业网上办公自动化将人…

redis开启二级缓存

目录 1. redis集成 2. pom.xml加入redis缓存支持 3. 在项目配置文件中加入cache配置 4. 在启动类开发缓存功能 5. 需要缓存的实体对象实现序列化接口 6. 缓存的使用 7. 测试 今天与大家分享&#xff0c;redis二级缓存实现案例。如有问题&#xff0c;望指教。 1. redis集…

计算机毕业设计springboot+vue基本微信小程序的校园二手物品交易平台系统

项目介绍 目的:设计一个同学们能自由发布和浏览求购或卖出商品信息的校园二手交易小程序,解决信息的不流通以及传统二手商品信息交流方式的笨拙等问题。 意义:在大学校园里,存在着很多的二手商品,但是由于信息资源的不流通以及传统二手商品信息交流方式的笨拙,导致了很多仍然具…