Ogre 1.8.1源代码编译和错误修改

写在一边,最好不要略过的话。
这篇blog是按照编译–>出错–>解决错误–>再编译 的方式写的。
我认为这种逐步改错的过程有助于学习和理解,所以这样写的。
最节约时间的方法,就是先全部看完,解决所有的错误,然后编译,一次成功。

一、编译生成Ogre 1.8.1源代码

0、我的系统环境

操作系统:64位Windows7
编译环境:Visual Studio 2013。
编译ogre1.8.1源码。

1、下载软件和源代码

(1)cmake安装文件下载:
http://www.cmake.org/download/
我下载的是cmake-3.2.1-win32-x86.exe

(2)下载ogre的Visual Studio Dependenciesogre 在如下链接:
http://sourceforge.net/projects/ogre/files/ogre-dependencies-vc%2B%2B/1.7/OgreDependencies_MSVC_20101231.zip/download

(3)下载ogre源代码在如下链接:
http://www.ogre3d.org/download/source
我下载的是OGRE 1.8.1 Source For Windows。

下载后文件如下图:
这里写图片描述

2、安装cmake3.2.1

安装cmake到电脑,步骤略。

3、解压缩源代码

  • 解压缩ogre_src_v1-8-1.exe和OgreDependencies_MSVC_20101231.zip文件。
  • 将OgreDependencies_MSVC_20101231文件夹下的Dependencies文件夹放到ogre_src_v1-8-1文件夹下。
  • ogre_src_v1-8-1文件夹移动到适当的位置。这里我将ogre_src_v1-8-1文件放在D盘根目录下。

4、编译Dependencies

  • 进入D:\ogre_src_v1-8-1\Dependencies\src文件夹,打开sln文件。
    由于没有vs2013的sln文件。先打开vs2013,从这里打开OgreDependencies.VS2010.sln文件,会提示转换对话框,确定即可。

  • 选择解决方案平台 x64,编译Debug版本解决方案。

  • 有编译错误,错误提示如下:
    这里写图片描述
    分别在几个错误提示的文件中添加代码如下:

#include <algorithm>
  • 编译Debug版本解决方案通过,再编译Release版本,通过。
  • Dependencies编译完成,关闭vs2013.

5、用cmake生成代码

  • 打开cmake_gui.exe。
  • source code 中选择文件夹:D:\ogre_src_v1-8-1。
  • 在 D:\ogre_src_v1-8-1文件夹下新建目录:Build。
  • build of binaries中选择文件夹:D:\ogre_src_v1-8-1\Build
  • 点击“Configure”按钮,选择对应的vs版本。我选择的是vs2013。
  • “完成”后,结果如下图。
    这里写图片描述

  • 再次点击“Configure”按钮,结果如下图。
    这里写图片描述

  • 点击“Generate”按钮,结果如下图。
    这里写图片描述

  • cmake生成代码完成。关闭cmake_gui.exe。

6、用vs编译ogre源代码

  • 打开 D:\ogre_src_v1-8-1\Build\OGRE.sln文件。
  • 选择解决方案平台x64,编译生成 debug版本的ALL_BUILD项目。
    这里编译需要等待10分钟。
  • 编译成功。
  • 再生成INSTALL项目。
    如果这个时候有错误,很可能是因为vs2013启动的时候不是用管理员身份。关闭vs,再“以管理员身份运行”Visual Studio 2013,打开OGRE.sln文件,生成INSTALL项目,就可以成功。
    -编译生Release版本的ALL_BUILD项目和INSTALL项目。

到这里你就已经成功编译生成的Ogre引擎的的源码!
辛苦~(≧▽≦)/~啦啦啦!先撒花,撒花!休息,休息!然后我们还用很多事情要忙!

二、运行示例代码,修改相关配置bug

下面我们将运行Ogre自带的示例文件,最近新下载的Ogre源代码产生一个以前没有的限制。下面要耐心的改bug了!

1、运行SampleBrowser项目

  • 将SampleBrowser项目“设为启动项目”,调试运行。
    错误提示如下:
    这里写图片描述

  • 将D:\ogre_src_v1-8-1\Dependencies\bin\Debug文件夹下的OIS_d.dll文件和 cg.dll文件复制到D:\ogre_src_v1-8-1\Build\bin\debug文件夹下。

  • 再运行。
    错误提示如下:
    这里写图片描述

  • 右击SampleBrowser项目,进入项目属性页面,
    配置属性–>调试–>工作路径 修改为: $(TargetDir)

  • 再运行。已经可以看见一个显示黑色窗口的对话框运行了,然后提示错误。
    错误提示如下:
    这里写图片描述

这个错误是由于Ogre配置禁止了zip文件的解析,所以在载入resources_d.cfg文件中的资源的时候无法解析Zip格式的资源。
有一个傻方法可以解决,就是将D:\ogre_src_v1-8-1\Build\bin\debug\resources_d.cfg文件中Zip资源都手动解压缩,然后再添加到资源列表。
例如:Zip=D:/ogre_src_v1-8-1/Samples/Media/packs/SdkTrays.zip
首先将SdkTrays.zip解压缩到D:/ogre_src_v1-8-1/Samples/Media/packs/SdkTrays文件夹下。
然后,在resources_d.cfg文件中将上面那行改写成
FileSystem=D:/ogre_src_v1-8-1/Samples/Media/packs/SdkTrays
然后再修改其它Zip。看起来还很多,这应该也挺麻烦的。
那我们还可以采用第二种方法,让Ogre引擎支持Zip文件的解析。
其实Ogre引擎中已经有支持Zip文件的代码,几年前我编译的时候是配置好的,现在我们只需要自己配置编译,让它支持Zip文件的解析就可以一劳永逸了。
具体步骤如下:

  • 在OgreMain项目中“添加现有项”
    D:\ogre_src_v1-8-1\OgreMain\src文件夹下的OgreZip.cpp文件,
    和D:\ogre_src_v1-8-1\OgreMain\include文件夹下 OgreZip.h文件。

  • 将 OgreMain项目中D:\ogre_src_v1-8-1\Build\include\OgreBuildSettings.h文件中44行代码

#define OGRE_NO_ZIP_ARCHIVE 1

改为:

#define OGRE_NO_ZIP_ARCHIVE 0
  • OgreMain项目–>属性–>连接器–>输入–>附加依赖项 中添加一行如下:
    ..\..\Dependencies\lib\debug\zziplibd.lib

  • 编译生成OgreMain项目。成功。

  • 编译生成 ALL_BUILD项目,成功。

  • 运行SampleBrowser项目,可以看到Ogre自带的实例。

这里写图片描述

猜你喜欢

转载自blog.csdn.net/jean7155/article/details/47946189
今日推荐