2013-10-07 66 views
2

我想靜態鏈接增強庫(boost/thread.hpp和boost/asio.hpp)到我的項目使用VS2012 express。構建目標設置爲Windows XP(v110_xp),並帶有選項Multithreaded(/ MT)(靜態鏈接)。我的項目屬性中正確設置了boost庫的路徑。 (C:\升壓\ boost_1_54_0 \級\ LIB)不過,我得到下面的連接錯誤:無法鏈接到使用VS2012,而動態鏈接工作正常的靜態增強庫

error LNK1104: file "libboost_system-vc110-mt-s-1_54.lib" cannot be opened. 

該文件確實是在我的庫文件夾丟失。但是,當使用多線程DLL(/ MD)選項動態鏈接時,一切都很好。我原來使用簡單的構建方法構建Boost庫如下所述:http://www.boost.org/doc/libs/1_54_0/more/getting_started/windows.html#simplified-build-from-source

bootstrap 
.\b2 

由於apperently靜態庫丟失,我叫:

b2 --link=static 

如在這裏描述:http://www.boost.org/boost-build2/doc/html/bbv2/tutorial/linkage.html

這個執行沒有錯誤,但似乎沒有建立任何新東西。我錯過了什麼?或者VS在尋找一個永不存在的文件?當我在搜索錯誤時沒有真正幫助,我很驚訝地發現一些點擊。

+1

如果我沒有完全關閉,使用'--link = static'只會告訴Boost構建過程靜態鏈接它的DLL,而不是實際創建靜態庫。 –

回答

2

調用b2以下參數:

link=static runtime-link=static 

注意,有linkruntime-link之前沒有連字符。