OGRE 2.1 使用VS2015編譯的過程以及問題的解決




官方OGRE源碼

官方依賴庫源碼



首先,強烈建議先根據官方文檔做好準備工作,準備相關的依賴庫,下面這個是另一個作者的準備過程,可以參考;

第三方依賴的編譯以及OGRE的前期準備工作在這  寫的很詳細,雖然是英文的,但是想編譯源碼的估計都能看懂;


文中提到的“Fix conflicting definition of snprintf”我並沒有需要用到;



編譯依賴庫的過程就不多說了,上面的鏈接中有詳細的說明怎麼做,並且不會出現太大的問題,下面就來說說編譯OGRE源碼的一些問題;

首先先把使用cmake創建源碼編譯工程的截圖貼上來:



這裏面的一些選項和上面鏈接中是不一樣的,不過大體也就是對應左邊的項在右邊填上依賴庫的完整路徑,這裏我是把Debug版本和Release版本都添加了;

然後就是打開OGRE.sln準本開始源碼編譯了;

如果你是直接開始編譯的,並且之前的依賴庫準備工作沒有出錯的話,那麼你應該會遇到以下錯誤:
 
  

  嚴重性代碼說明 項目 文件 禁止顯示狀態
錯誤 C2661“std::condition_variable::wait_until”: 沒有重載函數接受 3 個參數Sample_VolumeTexC:\Program Files (x86)\Microsoft Visual Studio14.0\VC\include\mutex734

嚴重性代碼說明 項目 文件 禁止顯示狀態
錯誤 C2661“std::condition_variable::wait_until”: 沒有重載函數接受 3 個參數Sample_VolumeTexC:\Program Files (x86)\Microsoft Visual Studio14.0\VC\include\mutex861


這個貌似是這個版本源代碼中的一個bug,這裏我的做法是直接卸載項目   Sample_VolumeTex   反正他只是一個樣例項目----其實是我當時看源碼看了半天沒發現錯誤,然後不知道怎麼修復。。,改完這裏呢,還需要在  源代碼目錄(編譯項目目錄,不是解壓的源代碼目錄)下的  /Samples文件夾中的  cmake_install.cmake文件中把
   第74行: include("D:/VSProject/build/Ogre/Samples/VolumeTex/cmake_install.cmake")  用#給註釋掉;

    
	Error   1   error MSB3073: The command "setlocal
	"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -DBUILD_TYPE=Release -P cmake_install.cmake
	if %errorlevel% neq 0 goto :cmEnd
	:cmEnd
	endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
	:cmErrorLevel
	exit /b %1
	:cmDone
	if %errorlevel% neq 0 goto :VCEnd
	:VCEnd" exited with code 1.   C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets   113

  
   或者相似的錯誤,這裏,我查了一下,大概就是項目生成的順序不對,或者對相關目錄沒有寫的權限,解決方法大概是以下兩種;
1,管理員身份運行VS
2,調整項目生成順序

但是悲劇的是我兩種方法都沒有解決問題,這裏我參考的是  這篇博客的作者的做法,然後就順利解決了;

哦對了,如果是編譯是選擇了發佈版還需要安裝 NSIS工具,這裏安裝方法就不多做解釋了;

 
   最後運行SampleBrowser.exe的時候如果出現:


的錯誤,直接把之前編譯依賴庫時生成的SDL2.dll複製粘貼過來就行了,當然對應Debug版或Release版;

   
    






在這貼一個我編譯好的文件    鏈接:http://pan.baidu.com/s/1nuJBVpZ 密碼:0766
  






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章