[英]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。
我使用以下命令(從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.