【Ogre-windows】环境配置
前言
由于工程原因, 學習一下Ogre面向對象圖形渲染開源引擎, 慢慢爬坑吧。首先還是環境的配置問題哎. 其實最重要的是要預先編譯三方庫, 雖然官方說可以自動編譯, 但是在自己電腦上還是出現了無法解析外部符號之類的問題, 正常情況下我就認為是三方庫的lib出現了問題, 最后額外編譯三方庫才得到了解決, 話不多說, 安裝開始.
環境: windows10、VS2013、Ogre1.10
所需code:
官方網址: Ogre1.10(github)、三方庫 、SDL2 、boost
【注】boost最好下載電腦所對應的VS版本, 我的電腦是VS2013, 所以下載boost_1_61_0-msvc-12.0-64.exe
百度網盤:
Ogre: 鏈接: https://pan.baidu.com/s/1TIPy-rndd-uBZJZynkvzrw 密碼: uf5c
三方庫: 鏈接:http://pan.baidu.com/s/1c1XCh0W 密碼:db29
SDL2: 鏈接:http://pan.baidu.com/s/1qXAnaA4 密碼:hegq
BOOST: 鏈接:http://pan.baidu.com/s/1pLMG7px 密碼:q8a8
國際慣例, 參考博客:
OGRE 2.1 Windows 編譯
官方manual
安裝
三方庫配置
先安裝boost, 一直下一步就行了, 我安裝的位置是D:\Package\boost_1_61_0, 注意設置一下環境變量
再看看我安裝后的目錄有哪些文件新建一個文件夾Ogre1.10放置三方庫以及后續的編譯好的程序, 將三方庫解壓進來, 并在D:\Package\Ogre1.10\cabalistic-ogredeps-a337c4874a15\src新建文件夾SDL2, 將下載的SDL2壓縮包中的大約40個文件復制丟進來, 并在D:\Package\Ogre1.10\cabalistic-ogredeps-a337c4874a15新建一個build文件夾, 接下來打開cmake-GUI, 設置好相關路徑
直接點擊Configure, 截圖一下我的結果
The C compiler identification is MSVC 18.0.40629.0 The CXX compiler identification is MSVC 18.0.40629.0 Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/bin/cl.exe Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/bin/cl.exe -- works Detecting C compiler ABI info Detecting C compiler ABI info - done Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/bin/cl.exe Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/bin/cl.exe -- works Detecting CXX compiler ABI info Detecting CXX compiler ABI info - done Detecting CXX compile features Detecting CXX compile features - done Looking for DirectX... DirectX_PREFIX_PATH changed. Check size of void* Check size of void* - done Found DirectX: C:/Program Files (x86)/Windows Kits/8.1/Lib/winv6.3/um/x86/d3d9.lib DX lib dir: C:/Program Files (x86)/Windows Kits/8.1/Lib/winv6.3/um/x86 DX lib dir: C:/Program Files (x86)/Windows Kits/8.1/Lib/winv6.3/um/x86 Check size of void* Check size of void* - done Configuring done
調試日志如下:雖然全是紅色的, 但是再Configure一下就沒了, 如果還有紅色的, 那你就得好好核對一下我上面貼的一堆圖了. 隨后Generate一下, 就看到build文件夾下已經有完整的VS工程啦
然后打開OGREDEPS.sln, 對ALL_BUILD生成一次, 就發生問題了
錯誤 944 error MSB6006: “cmd.exe”已退出,代碼為 1。 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets 170 5 SDL2這時候就考察VS的調試功底了, 直接去輸出窗口看具體位置:
5> Move SDL2 install files into the Release and Debug folders. 5> CMake Error at D:/Package/Ogre1.10/cabalistic-ogredeps-a337c4874a15/build/src/SDL2-prefix/src/SDL2-stamp/SDL2-MoveInstallFiles-Debug.cmake:16 (message): 5> Command failed: 1 5> 5> 'C:/Program Files/CMake/bin/cmake.exe' '-Dmake=' '-Dconfig=Debug' '-P' 'D:/Package/Ogre1.10/cabalistic-ogredeps-a337c4874a15/build/src/SDL2-prefix/src/SDL2-stamp/SDL2-MoveInstallFiles-Debug-impl.cmake' 5> 5> See also 5> 5> D:/Package/Ogre1.10/cabalistic-ogredeps-a337c4874a15/build/src/SDL2-prefix/src/SDL2-stamp/SDL2-MoveInstallFiles-*.log 5> 5> 5>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(170,5): error MSB6006: “cmd.exe”已退出,代碼為 1。很清晰地發現錯誤日志已經被丟到SDL2-MoveInstallFiles-*.log中, 去瞅一眼
Error copying file "bin/SDL2.dll" to "bin/Debug/SDL2.dll". CMake Error at D:/Package/Ogre1.10/cabalistic-ogredeps-a337c4874a15/build/src/SDL2-prefix/src/SDL2-stamp/SDL2-MoveInstallFiles-Debug-impl.cmake:29 (message): Command failed (1):'C:/Program Files/CMake/bin/cmake.exe' '-E' 'copy' 'bin/SDL2.dll' 'bin/Debug/SDL2.dll'很多人看到這類英文錯誤就直接問人, 小兄弟啊, 遇到錯誤先認真看一遍, 至少先翻譯一下也行啊. 嗯, 閑話不多說, 這個問題就是復制SDL2.dll的時候出問題了, 三方庫的輸出目錄是D:\Package\Ogre1.10\cabalistic-ogredeps-a337c4874a15\build\ogredeps, 可以發現在bin下的確有SDL2d.dll躺著, 主要是由于我們編譯的是Debug模式. 所以沒找到SDL2.dll, 導致錯誤, 解決方法很簡單, 切換Release模式重新編譯, 或者手動把這個文件拷貝進去.建議兩個都做一遍, 反正不沖突.
最后對INSTALL生成一遍,一定要核對一下相關文件(VS工程中出現的那幾個三方庫)是否在ogredeps文件中, 主要有
include: 相關頭文件, 這個一般都存在
lib: 相關lib庫文件
bin: 相關dll庫文件
如果不在, 直接針對每個項目右鍵打開文件資源管理器, 找到以后復制過來.
編譯Ogre源程序
將ogre-master解壓到D:\Package\Ogre1.10中, 然后將剛才編譯的三方庫ogredeps放入到ogre-master中, 并更名為Dependencies, 在D:\Package\Ogre1.10下新建文件夾Ogre用于存儲編譯的Ogre, 在cmake-gui中設置路徑
send_errorD:/Package/Ogre1.10/Ogre/Dependencies/bin/debug/cg.dll did not exist, can't install! send_errorD:/Package/Ogre1.10/Ogre/Dependencies/bin/release/cg.dll did not exist, can't install!
然后Configure, 調試信息太多了, 就不貼了, 第二次Configure出現錯誤這個文件在剛才編譯三方庫的時候D:\Package\Ogre1.10\cabalistic-ogredeps-a337c4874a15\build\bin里面, 同時我們還發現另外兩個dll: OIS.dll和Remotery.dll, 保險起見都復制過去吧,兩種模式Debug和Release, 重新Configure就沒問題了, 調試日志如下
Generate一下, 生成VS2013的工程文件, 可以在D:\Package\Ogre1.10\Ogre中找到.
【注】上述過程也可以在Cmake-GUI中不勾選OGRE_BUILD_DEPENDENCIES,并且設置OGRE_DEPENDENCIES_DIR為你的三方庫目錄, 好像更快一些
- 編譯OGRE.sln, 先ALL_BUILD一下, 時間挺久的, 要盯著錯誤列表, 一旦出現錯誤, 就直接取消生成解決錯誤吧. 個人覺得很多人會出現外部符號無法解析問題, 一定是由于lib文件沒折騰好引起的. 重新仔細核對上述步驟, 尤其是核對dll和lib是否折騰對.
【注】這里貼一下我編譯好的三方庫,便于大家核對 :鏈接:http://pan.baidu.com/s/1boDvokv 密碼:lkap
然后就可以INSTALL啦, 這個就是生成我們后續開發需要引用的Ogre各種文件, 存在于D:\Package\Ogre1.10\Ogre\sdk目錄下, 以后開發就只需要它應該就可以了.
- 最后可以通過VS運行程序, 也可以通過D:\Package\Ogre1.10\Ogre\bin\debug\SampleBrowser_d.exe運行程序
總結
以上是生活随笔為你收集整理的【Ogre-windows】环境配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 民生国宝系列主题信用卡年费多少?怎么免年
- 下一篇: 平安银行信用卡激活有效期是多久?这几种方