Ale*_*ack 28 c++ windows 64-bit boost-asio
我刚刚第一次开始使用Boost,详情如下:
我的代码现在编译了,我将我的项目指向了boost库(在构建了x64库之后)并且解决了过去的简单问题,现在我遇到了一个链接器错误:
2>BaseWebServer.obj : error LNK2001: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::get_system_category(void)" (?get_system_category@system@boost@@YAAEBVerror_category@12@XZ)
2>BaseWebServer.obj : error LNK2001: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::get_generic_category(void)" (?get_generic_category@system@boost@@YAAEBVerror_category@12@XZ)
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我添加了这个定义:#define BOOST_LIB_DIAGNOSTIC
现在在我的输出中我看到了这个:
1>Linking to lib file: libboost_system-vc90-mt-1_38.lib
1>Linking to lib file: libboost_date_time-vc90-mt-1_38.lib
1>Linking to lib file: libboost_regex-vc90-mt-1_38.lib
Run Code Online (Sandbox Code Playgroud)
这似乎表明它是系统库中的实际链接.
Ale*_*ack 44
我解决了这个问题.当我打算构建64位库时,我已经构建了32位库.我修复了我的构建语句,并构建了64位库,现在它可以工作了.
这是我的bjam命令行:
C:\Program Files (x86)\boost\boost_1_38>bjam --build-dir=c:\boost --build-type=complete --toolset=msvc-9.0 address-model=64 architecture=x86 --with-system
Run Code Online (Sandbox Code Playgroud)
#include <boost/system/config.hpp>
Run Code Online (Sandbox Code Playgroud)
就我而言,BOOST_LIB_DIAGNOSTIC并未显示系统已自动链接。我通过简单地包含boost / system / config.hpp来解决了这一问题。