您的位置:首页 > 编程语言

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

2015-08-30 19:44 253 查看
写在一边,最好不要略过的话。

这篇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自带的实例。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: