2014-10-27 69 views
5

我想在Visual Studio 2013中鏈接到幾個提升庫(需要編譯的庫),並且遇到麻煩。鏈接到視覺工作室2013提升

我已經通過命令行安裝乳寧升壓文件

boostrap.bat 

b2 --toolset=msvc-12.0 --build-type=complete architecture=x86 address-model=64 stage 

使類庫在C:\ boost_1_56_0 /臺/ lib目錄

在我的項目中,我進入配置屬性> c/C++>常規>其他包含目錄,幷包含C:\ boost_1_56_0幷包含使用的標頭,例如 等等

我然後去配置屬性>連接>附加依賴庫和包括C:\ boost_1_56_0 \臺\ lib中

我現在意識到,提升使用自動連接,所以我保證,有沒有嘗試在配置屬性指揮鏈接到Boost庫>連接>輸入>附加依賴

但是我仍然得到以下類型的(多)鏈接錯誤:

error LNK2001: unresolved external symbol "public: void __thiscall boost::archive::detail::basic_oarchive::end_preamble(void)" ([email protected][email protected]@[email protected]@@QAEXXZ) 

所有的R我發現有些問題是我對boost的自動鏈接設施的誤解,但我現在正在明確地做我應該做的事情(盡我所能理解)。它是找到頭文件好了,庫文件是我指導鏈接器尋找它們的地方。

我會做什麼錯?

+0

您是否嘗試過預處理文件選項並檢查.i文件以查看生成的內容? – BlueTrin 2014-10-27 14:22:25

回答

0

我只是遇到類似的問題,並與你分享我的想法。 您可能正在編譯32位和64位庫以提升。因此,我猜你可能有兩個目錄,其中包含具有相同名稱但內置於不同平臺的庫,如$(BOOST154_NEW_HOME)\ lib_x64和$(BOOST154_NEW_HOME)\ lib_x86。您應該在您的配置屬性>鏈接器>附加庫依賴項中包含這兩個路徑。儘管boost使用auto_link來找出你想使用的lib,但它仍然困惑於需要導入32位或64位以下的lib。

我的建議是你應該只在你的配置屬性>鏈接器>附加庫依賴項中包含64位boost libs目錄。

+0

我們可以添加一個完整的目錄嗎?我認爲我們應該只添加.lib文件 – Sashank 2017-03-14 12:43:40