我下載了Launchy的源代碼,並試圖在Visual Studio 2005中構建它。Launchy項目使用VC7構建,因此我必須將項目文件更新爲VC8,並且該過程似乎進行得很順利。然而,Launchy也使用Boost 1.33.1庫,我創建的是Boost 1.41.0 libs(爲了使更新的庫更容易構建而支持Boost),所以我還更新了項目以指向我的新增強庫安裝。現在,我得到下面的連接錯誤:Boost lib鏈接器錯誤Visual C++
fatal error LNK1104: cannot open file 'libboost_regex-vc80-mt-sgd-1_41.lib'
我曾在升壓lib目錄下,我能找到最匹配一看...
libboost_regex-vc80-mt-gd-1_41.lib
通知失蹤的「。我不明白libs中的區別是什麼,以及Visual Studio是否正在尋找錯誤的東西,或者我的Boost構建過程無法構建正確的庫。任何人都可以指引我走向正確的方向嗎?
作爲一個實驗,我製作了一個正則表達式庫的副本,並將其重命名爲鏈接程序正在查找的內容。這給了我鏈接錯誤約已經在MSVCRTD.LIB定義的符號,如下面的一個長長的清單:
error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" ([email protected]@[email protected]@@Z) already defined in libcmtd.lib(typinfo.obj)
我會嘗試建立了Boost 1.33.1庫,並在這一點上我Launchy項目文件代替。但我仍然想知道我的Boost 1.41.0庫有什麼問題。
編輯:我發現了一個參考in the Boost docs的「S」庫是什麼:
Use this library when linking statically to the C++ standard library and compiler runtime support libraries.
所以它看起來像「S」庫是正確的。現在我只需要弄清楚如何構建它們。
解決方案:我能夠用下面的命令行構建遺漏的boost庫。
bjam --build-type=complete msvc stage
我運行後,已經運行boostrap.bat在提升生活的地方。
如果你不想搞砸他們,你可以在這裏得到他們: http://boost.teeks99.com – teeks99 2009-11-27 15:33:03