第一节 ogre源码编译与安装

news/2025/2/12 23:00:25/

一. 电脑环境要求

本机使用的编译环境为:系统为Windows 10Microsoft Visual Studio Enterprise 2019,版本 16.11.26cmake-3.18.6-win64-x64
这些为基本的操作环境自己可以从网上下载安装。

二. 依赖环境下载

  1. DirectX SDK ;DXSDK_Jun10.exe 后安装即可。DXSDK_Jun10.exe下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=6812
  2. Ogre编译所需要的依赖项:ogredeps ;下载地址:https://github.com/FreesideInc/ogredeps ,注意这个库里的src目录下的AMD_AGS,Cg,NVAPI-R313-developer三个包里面的文件不完整,后面cmake编译时候容易出错,需要自己在网上找全,或者后面我也分享了完整的库文件。
  3. Ogre源码下载;https://github.com/OGRECave/ogre/archive/v13.6.4.zip
  4. SDL库;为了修复一个CMake config过程中遇到的问题; https://www.libsdl.org/hg.php,网上好多文章写需要下载SDL库,但是我给的ogredeps依赖里面已经有SDL库了,我并没有使用,这里看实际情况需要。

三. 源码编译

  1. DirectX SDK 安装问题:
    如果系统已经安装过,
    Microsoft Visual C++ 2010 x86 Redistributable - 1010.0.40219
    Microsoft Visual C++ 2010 x64 Redistributable - 1010.0.40219
    则会出现【错误Error Code:s1023】提示,卸载更高版本的
    Microsoft Visual C++ 2010 x86 Redistributable - 1010.0.40219
    Microsoft Visual C++ 2010 x64 Redistributable - 1010.0.40219
    再重新安装DXSDK_Jun10.exe 即可,安装完后,下载1010.0.40219版升级回来即可。
    Visual C++ 2010 Redistributable下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=26999

  2. 解压下载下来的ogredeps,更名为Dependencies,放到${OGRE_HOME}/Dependencies目录下。
    在这里插入图片描述

  3. 打开CMake,对Dependencies进行config和generate.
    在这里插入图片描述对编译后得到的OGREDEPS.sln,使用vs2019,分别进行ALL_BUILD和INSTALL生成。
    在这里插入图片描述

  4. ogre依赖环境安装成功后,最后对源码进行cmake编译,进行config和generate。点击config,config完后,到列表中找到OGRE_DEPENDENCIES_DIR,将其设置为D:/Project/3DGIS/OgreSDK/Dependencies/build/ogredeps,再次config,然后generate。
    在这里插入图片描述同理,打开OgreSDK\build里面的OGRE.sln,右键ALL_BUILD和INSTALL点击生成。
    在这里插入图片描述

四. 测试

选择项目SampleBrowser,点击运行,如果得到下图界面,说明源码编译成功。注意本文所有编译都是在VS2019 Release x64模式下。
在这里插入图片描述
在这里插入图片描述

五. 参考

https://blog.csdn.net/qq_38446366/article/details/117068376
https://blog.csdn.net/DdogYuan/article/details/79559667

六. 依赖库

https://download.csdn.net/download/qq_35662333/87725563


http://www.ppmy.cn/news/53190.html

相关文章

详谈Android进程间的大数据通信机制:LocalSocket

前言 说起Android进行间通信,大家第一时间会想到AIDL,但是由于Binder机制的限制,AIDL无法传输超大数据。 比如我们在之前文章《WebRtc中是如何处理视频数据的?》提到的我们可以得到WebRtc的视频数据,这时候我们如果有…

Unity3d数字化看板-多关节机器人运动控制

特殊:机器人多关节跟随运动 机械手运动控制主要是关节的旋转,通过控制多个关节的角度,实现对机械手的同步控制 机械手运动控制,可以分解为多个关节的运动,下一关节是跟随在上一关节运动,在处理模型的时候…

Know-Evolve: Deep Temporal Reasoning for Dynamic Knowledge Graphs

Know-Evolve: Deep Temporal Reasoning for Dynamic Knowledge Graphs Rakshit Trivedi 1 Hanjun Dai 1 Yichen Wang 1 Le Song 1 知识背景 Temporal Knowledge Graph : facts occur,recur or evolve over time in these graphs,and each edge in the graphs have temporal …

【 Spark编程基础 】实验3

准备工作 启动Hadoop集群 & Spark • 启动Hadoop集群start-all.sh • 启动Sparkcd /usr/local/spark/spark-2.3.3-bin-hadoop2.6/# ./sbin/start-all.sh 实验数据说明。 • 数据为1970年到2016年,每年各球队的球员比赛数据统计,数据文件的格式如图1所…

几个实用的正则表达式

1到100之间的正整数正则 表达式:^[1-9]\d?$|^100$ 解释: ^表示匹配字符串开始位置 [1-9]表示数字1-9中的任意一个 \d表示任意一个数字 ?表示前面一个字符或子表达式出现0或1次 $表示匹配字符串结束位置 |表示或 最终的解释为:匹配满…

js 各种数据类型互相转换的函数

js 各种数据类型互相转换的函数 JavaScript中的数据类型包括字符串、数字、布尔、数组、对象等,以下是它们之间互相转换的函数: 字符串转数字: parseInt()函数:把字符串转换为整数。如果字符串以非数字字符开头,则返…

FreeRTOS系统学习-内核篇.01-数据结构---列表与列表项定义详解-链表节点插入实验

# 内核篇.01 列表与列表项 为什么要学列表?链表单向链表双向链表 FreeRTOS 中链表的实现节点节点初始化尾节点根节点链表根节点初始化将节点插入到链表的尾部将节点按照升序排列插入到链表将节点从链表删除节点带参宏小函数 链表节点插入实验实验现象 为什么要学列表…

【Java 】Java 类加载和类加载器

文章目录 前言一、加载二、链接验证准备解析 三、初始化发生的时机不会触发类的初始化 四、类加载器双亲委派模式 前言 Java 的类加载阶段分为:加载、链接、初始化,而链接的过程中包括:验证、准备、解析。 一、加载 将类的字节码载入方法区…