【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.cfgDESTINATION ${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 OGREstatic : OFFcomponents : Bites;HLMS;MeshLodGenerator;Overlay;Paging;Property;RTShaderSystem;Terrain;Volumeplugins : Plugin_BSPSceneManager;Plugin_CgProgramManager;Plugin_OctreeSceneManager;Plugin_PCZSceneManager;Plugin_ParticleFX;RenderSystem_GL;RenderSystem_GL3Plus;RenderSystem_Direct3D9;RenderSystem_Direct3D11media : 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.cfg和resources.cfg)到當前工程目錄
拷貝media到當前工程目錄的上一級目錄中
然后再運行就能出結果.
————————我是分割線————————
感覺很多人可能不知道我說的當前工程目錄怎么找, 很簡單, 對著解決方案下面你所建立的工程右鍵,選擇在文件資源管理器中打開文件夾
也就是說兩個cfg就是放在這個打開的目錄中, media是在它的上級目錄
后記
所以這篇博客就告訴我們, 要注意好Ogre每個版本對應的Tutorial, 不同的版本對應的實例不同, 如果沒對應好, 可能會走進大坑. 因而后續的學習就會從這里或者這里的教程開始, 而不是這里
手動檔工程打包: 鏈接:https://pan.baidu.com/s/1sl2ubdr 密碼:vrak
總結
以上是生活随笔為你收集整理的【Ogre-windows】实例配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 平安信用卡保费分期什么时候申请?这几类保
- 下一篇: 【Ogre-windows】旋转矩阵及位