【Ogre-windows】实例配置

前言

折腾了好久才搞定教程实例, 主要是因为上一篇博客安装的具体版本是Ogre1.10.9, 而官方的Ogre Wiki Tutorial Framework没有指定具体版本, 如果单纯下载Ogre Wiki Tutorial Framework 1.10 - (Windows line endings, updated 2015-10-15) 运行, 基本会血崩. 所以, 在经过仔细琢磨官网以后发现发现其实例藏在D:\Package\Ogre1.10\ogre-master\Samples\Tutorials这个文件夹中, 尴了个尬, 感觉Ogre每次更新版本都有些比较大的变动, 比如1.9的实例不能用于1.10,而 1.10自己都有好几个版本, 目前官方的github上推荐的应该是1.10.9

国际惯例, 参考博客

Start Learning Ogre Here

Setting up an OGRE project

两种配置方法, Cmake是最简单的, 但是为了进一步了解都需要哪也东东, 我们也研究一波手动加入三方库

配置实例——Cmake

去目录D:\Package\Ogre1.10\ogre-master\Samples\Tutorials看一眼它的Cmake文件发现很简单:

cmake_minimum_required (VERSION 2.8)
project(OgreTutorialsSample)

## [discover_ogre]
# specify which version you need
find_package(OGRE 1.10 REQUIRED)

# the search paths
include_directories(${OGRE_INCLUDE_DIRS})
link_directories(${OGRE_LIBRARY_DIRS})

# copy essential config files next to our binary where OGRE autodiscovers them
file(COPY ${OGRE_CONFIG_DIR}/plugins.cfg ${OGRE_CONFIG_DIR}/resources.cfg
     DESTINATION ${CMAKE_BINARY_DIR})
## [discover_ogre]

add_executable(0_Bootstrap Bootstrap.cpp)
target_link_libraries(0_Bootstrap ${OGRE_LIBRARIES})

add_executable(1_FirstScene BasicTutorial1.cpp)
target_link_libraries(1_FirstScene ${OGRE_LIBRARIES})

add_executable(2_CamerasAndShadows BasicTutorial2.cpp)
target_link_libraries(2_CamerasAndShadows ${OGRE_LIBRARIES})

虽然我没具体Cmake, 但是稍微有点编程素养的应该不难发现, 主要包含:

  • 核对Ogre的版本是否为1.10
  • 重要的包含目录和库目录都必须得有
  • 拷贝Ogre程序运行必须载入的两个cfg文件

随后直接进行cmake

这里写图片描述

貌似一个错误都没

Found OGRE
  static     : OFF
  components : Bites;HLMS;MeshLodGenerator;Overlay;Paging;Property;RTShaderSystem;Terrain;Volume
  plugins    : Plugin_BSPSceneManager;Plugin_CgProgramManager;Plugin_OctreeSceneManager;Plugin_PCZSceneManager;Plugin_ParticleFX;RenderSystem_GL;RenderSystem_GL3Plus;RenderSystem_Direct3D9;RenderSystem_Direct3D11
  media      : D:/Package/Ogre1.10/ogre-master/build/sdk/Media
Configuring done

我记得当时有一个错误来着, 但是并没有关系, 出错也是在OGRE_DIR没找到, 只需要将它设置一下就好了, 最后generate得到VS2013的工程文件, 运行D:\Package\Ogre1.10\ogre-master\Samples\Tutorials\build下的OgreTutorialsSample.sln, 然后ALL_BUILD生成一下, 出现了如下错误

这里写图片描述

很简单, 没找到std::cerr, 我们去这个BasicTutorial1.cpp的顶部加上

#include <iostream>
using namespace std;

在重新ALL_BUILD生成一遍就得到了正确的结果, 然后设置一下: 解决方案资源管理器->解决方案属性->启动项目->当前选定内容, 然后运行, 你会发现并运行不了

这里写图片描述

此时我们需要将Debug模式改成Release模型运行, Ok,继续出错

这里写图片描述

貌似是什么东西没读到, 还记得刚才说的两个配置文件么, 它们的具体用途到下一篇博客再说, 总之就是我们的模型文件没有被加载进来, 去瞅瞅resources.cfg, 发现需要在上级目录中存在一个称为Media的文件夹, 里面存储着很多运行需要用到的资源文件, 解决方法是重新设置resources.cfg里面的Media路径, 或者是整个都拷贝过来, 原来的Media在你编译好的D:\Package\Ogre1.10\ogre-master\build\sdk目录中也存在, 我直接拷贝到D:\Package\Ogre1.10\ogre-master\Samples\Tutorials中, 然后再运行第一个案例, 就出结果了, ESC退出:

这里写图片描述

【注】其实也就是需要注意两点:

  • CMake的时候一般都是找路径没找到, 只需要在GUI中设置一下路径就行了, 这一部分不会出太大问题
  • 运行的时候记得选择Release
  • 记得将Media资源文件拷贝到当前工程目录的并列地方
    这里写图片描述
  • 环境变量要注意加到path中, 如果不加的话, 编译没问题, 但是运行可能遇到dll找不到
    这里写图片描述

配置实例——手动档

直接先在VS中建立一个win32应用程序空项目, 在源文件中新建一个main.cpp, 随便复制一个实例的代码过来, 我复制的是第一个实例的Bootstrap.cpp, 然后在项目属性中依次设置

VC++目录->包含目录

这里写图片描述

VC++目录->库目录

这里写图片描述

注意以上两步都要勾选左下角的

这里写图片描述

连接器->输入

OgreBites.lib
winmm.lib
imm32.lib
version.lib
msimg32.lib
D:\Package\Ogre1.10\ogre-master\build\Dependencies\lib\SDL2main.lib
D:\Package\Ogre1.10\ogre-master\build\Dependencies\lib\SDL2.lib
OgreHLMS.lib
OgreMeshLodGenerator.lib
OgreOverlay.lib
OgrePaging.lib
OgreProperty.lib
OgreRTShaderSystem.lib
OgreTerrain.lib
OgreVolume.lib
OgreMain.lib

编译Release出现错误:

错误  3   error C4996: 'Ogre::Resource::Listener::backgroundLoadingComplete': 被声明为已否决 d:\package\ogre1.10\ogre-master\build\sdk\include\ogre\OgreEntity.h 896 1   Ogre1

然后删除属性中C/C++右边的SDL检查对应的是 (/sdl)即可编译成功

运行前别忘记

  • 拷贝两个cfg文件(plugins.cfgresources.cfg)到当前工程目录

  • 拷贝media到当前工程目录的上一级目录中

然后再运行就能出结果.

————————我是分割线————————

感觉很多人可能不知道我说的当前工程目录怎么找, 很简单, 对着解决方案下面你所建立的工程右键,选择在文件资源管理器中打开文件夹

这里写图片描述

也就是说两个cfg就是放在这个打开的目录中, media是在它的上级目录

后记

所以这篇博客就告诉我们, 要注意好Ogre每个版本对应的Tutorial, 不同的版本对应的实例不同, 如果没对应好, 可能会走进大坑. 因而后续的学习就会从这里或者这里的教程开始, 而不是这里

手动档工程打包: 链接:https://pan.baidu.com/s/1sl2ubdr 密码:vrak

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风翼冰舟

额~~~CSDN还能打赏了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值