最近突然发现Ogre引擎更新到2.1版本了,既然依旧是代码开源,本着学习的精神就下载下来弄弄。但是官网提供的SDK版本只有1.9的,考虑到学习的便利性,因此最好从Source版本开始弄,这样的话以后想一探究竟的时候比较方便不是嘛。。

本教程主要记录的是如何编译Ogre的Source版本并生成SDK,编译环境Windows x64,所有工作目录都保持在英文路径下进行,否则会出现什么奇怪的问题

笔者在摸索清楚整个编译过程中查了许多资料,也都一并将链接放在这里,供大家参考:

  • http://www.ogre3d.org/tikiwiki/tiki-index.php?page=CMake+Quick+Start+Guide  这个是教CMake编译Ogre的
  • http://www.ogre3d.org/forums/viewtopic.php?f=1&t=83889  坑死笔者的问题,看了这个才知道是为啥=-=
  • http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Building+Dependencies  这个介绍了Ogre所需要的依赖库

弄完以后,笔者更加确信了一个真理:有问题,问Google

1、 准备工作:

  从Ogre的Bitbucket项目地址:https://bitbucket.org/sinbad/ogre 从这里将Source直接Clone下来,建议使用SourceTree来完成该工作,如果直接下载Zip打包也可以

   从https://bitbucket.org/cabalistic/ogredeps 找到Ogre的依赖库,这个依赖库整合了Ogre Source编译需要的必要库,同样的这里用SourceTree搞定

  注意,第二个千万不要直接下载Zip包,否则后面会遇到“ No download info given for 'SDL2' and its source directory” 这样的错误,笔者在这里被坑惨了。。直接下载的版本没有SDL2=-=

  

  这两个东西都同步到本地以后,下载cmake的最新版,官方主页是:http://www.cmake.org/ ,下载对应的版本即可,笔者是在Windows下因此下载Windows Binary,安装后准备开始工作

2、Build依赖库(Dependencies):

  首先工作是编译依赖库,找一个地方新建一个文件夹用来保存依赖库编译的Output,命名就叫ogredepsBuild吧

  如上图所示,打开cmake-gui后,在Where is the source code的位置点击Browse Source...,选择在第一步中同步下载的ogredeps文件夹

  在Where to build the binaries的位置点击Browse Build...,选择刚才新建的文件夹,在这里我们起名叫做ogredepsBuild点击下方的Configure后,选择编译目标的IDE环境,笔者使用的是VS2013 x64,选好后点击ok等待完成

  完成后,再点击两次Generate就可以完成编译链接工作,这样一来,在ogredepsBuild文件夹中就会生成一个VS项目

  打开OGREDEPS.sln后,先将ALL_BUILD进行build,然后再对INSTALL进行build,完成后,在该项目文件夹中会生成一个新的文件夹叫做ogredeps,这里面就保存着编译Ogre所需要的依赖库了,拿好这个进入下一阶段

3、Build Ogre Source:

  找一个地方新建名为OgreBuild的文件夹,用于存放Ogre编译后的Output。然后找到第一步中同步下来的Ogre文件夹,打开后新建一个名为Dependencies的文件夹,把第二步生成的依赖库文件copy进来。

  打开cmake-gui,在Where is the source code的位置点击Browse Source...,选择Ogre文件夹;在Where to build the binaries的位置点击Browse Build...,选择OgreBuild;然后点击Confgigure,选择编译目标IDE环境,继续

  这个步骤中请检查是否提示了一些错误信息,笔者在这里提示了send_errorD:/tools/Ogre/Dependencies/bin/release/OIS.dll did not exist, can't install!,意思是找不到OIS.dll,这个是依赖库的一个dll,不过依赖库内部提供了debug版本,我也就没管,后面用debug进行build也没有影响,如果出现其他问题还请自行核查,一般都是依赖库缺失DLL,自己可以去找一下。完成后会如上图所示。

  在这之后再点击两次Generate完成工作,这时候OgreBuild文件夹中已经产生了我们所需要的文件了,找到该文件夹里面的OGRE.sln打开,先将ALL_BUILD进行build,然后再对INSTALL进行build,然后编译工作就基本完成了。

  箭头所指示的两个文件夹,bin文件夹存放了编译出来的可以直接运行的内容,sdk文件夹就是本教程的目标了

  为了检查效果,我们打开bin/debug文件夹下的SampleBrowser_d.exe,这是Ogre的demo,在Rendering SubSystem中选择对应的渲染引擎后就可以开始了。

  另外,如果提示缺少类似OIS_d.dll的话可以直接从依赖库拷贝过来扔到exe所在的目录下,如果exe运行后未响应,说明电脑没有安装对应的渲染引擎。。这时候如果界面也无法调出来重新选,就删除debug内容后重新Build,再或者就是装一个对应的渲染引擎SDK就好了。

  

Ogre源码编译教程的更多相关文章

  1. 转:OGRE 源码编译方法

    编译及运行环境:Windows 7 . vs2010. 编译前的准备: 1.想编译OGRE,最起码要有OGRE的源码吧.可以去官方网站下载最新的源码包,我这里用的是1.7.2版本的,下载下来的文件叫 ...

  2. Mysql 源码编译教程贴

    题外话:这是一篇教程贴,不仅学的是mysql的编译,还是一些编译的知识.我也是一个菜鸟,写一些感悟和心得,有什么问题可以批评指正,谢谢! 如果只是为了安装请移到我的另一篇安装贴: Mysql安装贴 环 ...

  3. 独一无二 hortonworks spark 源码编译教程

    hortonworks的源码在github上能找到! https://github.com/hortonworks/spark2-release 找到对应版本release源码后下载到本地 在wind ...

  4. hadoop 2.7.3 源码编译教程

    1.工具准备,最靠谱的是hadoop说明文档里要求具备的那些工具. 到hadoop官网,点击source下载hadoop-2.7.3-src.tar.gz. 解压之 tar -zxvf hadoop- ...

  5. 【转载】Ogre3d 2.1 源码编译安装教程

    原文:Ogre3d 2.1 源码编译安装教程 今年是3D手游年,今年也是游戏引擎战争进入白热的一年. 移动游戏的红海时代,让各大端游也忍不住纷纷伸出大白腿,Unreal.CryEngine纷纷宣布自己 ...

  6. 保姆级教程——Ubuntu16.04 Server下深度学习环境搭建:安装CUDA8.0,cuDNN6.0,Bazel0.5.4,源码编译安装TensorFlow1.4.0(GPU版)

    写在前面 本文叙述了在Ubuntu16.04 Server下安装CUDA8.0,cuDNN6.0以及源码编译安装TensorFlow1.4.0(GPU版)的亲身经历,包括遇到的问题及解决办法,也有一些 ...

  7. [转]如何编译tizen源码(图文教程)?

    http://blog.csdn.net/flydream0/article/details/9004746 前一篇文章已经介绍了如何下载tizen源码(http://blog.csdn.net/fl ...

  8. 如何编译tizen源码(图文教程)?

    前一篇文章已经介绍了如何下载tizen源码,下面我将继续讲述如何编译源码. 1 下载安装gbs编译工具 tizen源码是用gbs工具进行编译的,因此我们首先得将此工具下载下来,并且设置好. 下面的Ub ...

  9. 【运维技术】Nginx安装教程(yum安装,源码编译)

    安装方式 yum直接更新源安装 源码直接编译之后安装 使用yum进行直接安装 Installing a Prebuilt CentOS/RHEL Package from an OS Reposito ...

随机推荐

  1. Swift # Apple Pay集成

    苹果正式开放了Apple Pay支付系统.Apple Pay是一个基于NFC的支付系统,不久将被数以万计的线下零售商店予以支持.即便这项科技并不是彻底的突破性进展,但它足以推动许多公司和零售商来支持这 ...

  2. c# WebBrowser开发参考资料

    原文:c# WebBrowser开发参考资料 c# WebBrowser开发参考资料,所有资料的采集均来自网上 话说有了WebBrowser类,终于不用自己手动封装SHDocVw的AxWebBrows ...

  3. MVC验证03-自定义验证规则、禁止输入某些值

    原文:MVC验证03-自定义验证规则.禁止输入某些值 本文继续体验自定义验证规则,需求是禁止输入某些值.本文与前2篇相关,请参考:MVC验证01-基础.远程验证   MVC验证02-自定义验证规则.邮 ...

  4. android KK版本号,如何更改蓝牙设备类型

    mediatek/external/bluetooth/bt_cust/bt_cust_table.h   {         .name = "ClassOfDevice",   ...

  5. JavaScript中的单引号和双引号报错的解决方法

    在使用JavaScript显示消息或者传递字符数据的时候,经常会碰到数据中夹杂单引号(')或者双引号("),这种语句往往会造成JavaScript报错.对此一般采用/'或者/"的解 ...

  6. 对象javascript

    //对象 var lennon=Object(); lennon.name="John"; lennon.year=1940; lennon.living=false; conso ...

  7. win7访问xp共享访问不了

    这个问题不是一天两天了,经历几次了,所以记下来. 1. 一些XP对用户权限作了特殊的优化设置.限制了只有guest用户才能用于做局域网共享用户. 2. 大多数时候,需要设置一个密码,才能用于访问. 3 ...

  8. 工作流设计参考(包括PHP实现)

    工作流很少有让人满意的,即便是国内用的比较多的jbpm,用起来也会觉得很便扭.再加上PHP中没有什么好用的工作流,于是干脆自己设计一个,设计的原则如下: 1 根据80/20原则,只使用wfmc模型中最 ...

  9. 快速构建Windows 8风格应用10-设备方向

    原文:快速构建Windows 8风格应用10-设备方向 本篇博文主要介绍常用支持Windows 8操作系统设备的方向.如何获取当前设备方向.DisplayProperties类. 常用支持Window ...

  10. openwrt_git_pull命令提示merger冲突时如何解决?

    直接贴代码 tf@ubuntu:~/projects/openwrt1407$ git pull Updating 331ecb0..d12dc6e error: Your local changes ...