簡體   English   中英

x64上Boost 1.53和VS 2013的鏈接器錯誤

[英]Linker error with Boost 1.53 and VS 2013 on x64

我已經在SO和其他地方發現了這個問題,它總是與在x64構建上鏈接32位庫有關,反之亦然,例如: Boost鏈接器錯誤:無法解析的外部符號“類boost :: system :: error_category const&__cdecl boost :: system :: get_system_category(void)“

1>base_pcount.obj : error LNK2001: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::system_category(void)" (?system_category@system@boost@@YAAEBVerror_category@12@XZ)
1>base_pcount.obj : error LNK2001: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::generic_category(void)" (?generic_category@system@boost@@YAAEBVerror_category@12@XZ)

但是我99%的肯定是我正在鏈接和構建x64。

  • 我正在用x64目標構建程序
  • 我正在使用Boost 1.53
  • 我正在使用Vs 2013
  • 我使用以下命令(從VS 2013 x64開發人員控制台)構建了系統lib:

    bootstrap.bat

    。\\ b2 --build-dir = C:\\ boost_1_53_0 \\ binaries工具集= msvc-12.0鏈接=靜態線程化=多變體=發布-地址模型= 64體系結構= x86系統

因此,此時,boost並未真正為x64構建,或者我的程序並未為x64構建。 有什么想法可能會出問題嗎? 不幸的是,也沒有人提供vs 2013的預編譯二進制文件,因此我完全陷入了困境。

編輯:我通過升級到Boost 1.57並使用新版本提供的預編譯二進制文件來“解決”此問題。 似乎Boost 1.53從來都不是vs 2013的一部分。

有點晚了,但我之前沒看到您的問題。

您需要刪除-address-model=64前面-這是屬性,而不是選項。 所以我認為您畢竟不是為64位構建的,因為-address-model=64被認為是(可能無效)選項。

暫無
暫無

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

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