簡體   English   中英

與 Visual Studio 2013 鏈接到 boost

[英]linking to boost with visual studio 2013

我正在嘗試鏈接到 Visual Studio 2013 中的幾個 boost 庫(需要編譯的庫),但在這樣做時遇到了問題。

我已經通過從命令行運行安裝了 boost 文件

boostrap.bat

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

以便庫位於 C:\\boost_1_56_0/stage/lib

在我的項目中,我進入配置屬性>c/c++>General>Additional include 目錄並包含 C:\\boost_1_56_0 並包含使用例如#include<boost/serialization/vector.hpp>等的標頭

然后我轉到配置屬性>鏈接器>附加庫依賴項並包含 C:\\boost_1_56_0\\stage\\lib

我現在知道 boost 使用自動鏈接,所以我確保沒有嘗試在配置屬性>鏈接器>輸入>附加依賴項中將鏈接定向到boost庫

但是,我仍然收到以下類型的(許多)鏈接器錯誤:

error LNK2001: unresolved external symbol "public: void __thiscall boost::archive::detail::basic_oarchive::end_preamble(void)" (?end_preamble@basic_oarchive@detail@archive@boost@@QAEXXZ)

我發現所有相關問題都與對 boost 的自動鏈接工具的誤解有關,但我現在正在明確地做我應該做的事情(據我所知)。 它正在找到頭文件,庫文件是我指導鏈接器查找它們的地方。

我可能做錯了什么?

有大量文章用於在堆棧溢出中鏈接 Visual Studio 中的 boost。 我發現最小/完整的其中之一是How to use Boost in Visual Studio 2010

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM