2013-06-02 74 views
0

我已經正確編譯了Windows 8的升級包含VS-10,如link中給出的。我的項目工作正常。但是,當我將該項目複製到另一臺Windows 7機器時,它將返回一條錯誤消息,因爲「應用程序無法正確啓動(0xc000007b)。單擊確定關閉此應用程序。」我已經在第二臺PC上正確安裝了Boost。這兩款PC都是64位的,我在兩者中都安裝了32位的Boost。正如我從一些鏈接中發現的,這是因爲該項目試圖動態鏈接64位庫而不是32位。您能否建議如何將其作爲便攜式解決方案來構建?提前致謝。Windows 7中的Boost庫錯誤64位

更新1: 以下是依賴walker輸出。 enter image description here

回答

1

您確定選擇了Visual Studio 2010命令提示符x86來編譯庫嗎?或x64版本?在開始菜單中有超過1個版本的命令提示符。我的猜測是你不小心運行了x64版本,然後用它編譯boost,導致編譯的庫的x64位版本。

以下是編譯升壓的靜態和共享版本的x86批處理文件:

compileboost.bat:

call "%vs110comntools%..\..\VC\vcvarsall.bat" x86 
cd C:/boostsourcefolder/ 
call bootstrap.bat 
.\b2 runtime-link=static 
.\b2 runtime-link=shared 

然後在你的VS2010的項目屬性,公共屬性 - > VC++目錄 - >包含目錄,鍵入你的boost文件夾(C:/ boostsourcefolder /)。並在通用屬性 - > VC++目錄 - >庫目錄中,鍵入boost編譯庫文件夾(C:/ boostsourcefolder/stage/lib /)。

這幾乎是你所需要做的。

+0

在Visual Studio命令提示符(2010),Visual Studio x64交叉工具命令提示符(2010)和Visual Studio x64 Win64命令提示符(2010)這兩種PC中有三個命令提示符。我使用第一個(Visual Studio命令提示符(2010))在兩臺機器上進行編譯。我應該使用其他版本嗎?謝謝。 –

+0

它應該是正確的,我更新了我的回覆,以防更多細節可能會對您有所幫助 –

+0

我只是好奇我使用以下兩個命令所做的是否與您所建議或不建議的完全不同。請提供建議。我首先運行「bootstrap」,然後在啓動源文件夾中運行「bjam toolset = msvc-10.0 variant = debug,release threading = multi link = static」。 –