2012-06-07 55 views
1

需要添加64位版本的Ogre圖形引擎(在撰寫本文時是最新版本,即1.8.0版本),我遵循their hints並打開了一個visual C++ x64命令提示符並輸入:Ogre 64位構建提升

bjam --build-dir=vc10 --toolset=msvc-10.0 --address_model=64 --with-thread --with-date_time --build-type=complete stage 

這是盡我所能地令人信服地提高爲64位Windows編譯器生成lib對象。我使用Visual Studio 2010 Premium和CMake工具從源代碼編譯Ogre。這就是事情討厭:

Error 276 error LNK1104: cannot open file '..\..\lib\Debug\OgreMain_d.lib'  
Error 119 error LNK1112: module machine type 'X86' conflicts with target machine type 'x64' 

我擔心,我不會讓它通過這個問題一旦我完全不習慣與嚴重依賴,我必須依賴大的代碼庫工作的任何時間,另外,從頭開始構建。你能否提供一個提示或鏈接到我可能錯過的東西?謝謝..

UPDATE 有含已建成的圖書館網站,但是這將是很好的學習爲什麼--address模型--address空間標誌不工作。如何使用bjam來構建庫?

回答

2

bjam命令中有幾個錯誤。您不希望在toolsetaddress-model之前,並且address-model有一個連字符,而不是下劃線。

所以,你可能被瞄準的命令是:

bjam --build-dir=vc10 toolset=msvc-10.0 address-model=64 --with-thread --with-date_time --build-type=complete stage 
+0

謝謝,我想我需要做兩件事:檢查我的眼睛並糾正Ogre官方教程(因爲他們使用--toolset)。難怪address_model沒有被_bjam_識別爲有效標誌 – teodron

1

第一個錯誤是不言自明的 - lib文件在指定的路徑中不存在。 第二個錯誤表明您正在構建64位,但正在使用的其中一個依賴項庫已編譯爲32位。

+0

很清楚的是,第一個錯誤可能是一個問題的原因在我的問題的具體問題:如何建立這些Boost庫爲64位編譯器?儘管我已經在MS VC提示符中使用了'badam_model = 64'標誌的boost'bjam',但它沒有爲64位目標生成'.libs'(我使用'dumpbin'效用)。我認爲如果我擺脫了64 vs 32的問題,我會解決它。 – teodron

1

嘗試從there下載預編譯的Boost二進制文件並將其安裝到默認位置。這將使CMake正確定位庫幷包含dirs。

+0

我已經做到了,他們都是32位。對於64位,我已經找到了一個列在[this](http://stackoverflow.com/questions/2322255/64-bit-version-of-boost-for-64-bit-windows)SO線程中的版本作爲答案(第二個我相信) – teodron