我正在尝试在 Visual Studio 2005 中构建一个需要 Boost 1.44.0 的项目(我知道它很旧,但我必须使用这些版本)。我已经用 bjam 构建了它,正如它在 VS 2005 命令提示符中的以下行中提到的那样:
bjam --toolset=msvc-8.0 --build-type=complete link=static threading=multi architecture=x86 address-model=64 --with-system stage
我已经将我的库路径设置为:
...\boost_1_44_0\stage\lib
并包括:
...\boost_1_44_0
但是当我尝试构建整个解决方案时,链接过程会引发以下错误:
Error 1 error LNK2019: unresolved external symbol __imp__getaddrinfo@16 referenced in function "class boost::system::error_code __cdecl boost::asio::detail::socket_ops::getaddrinfo(char const *,char const *,struct addrinfo const &,struct addrinfo * *,class boost::system::error_code &)" (?getaddrinfo@socket_ops@detail@asio@boost@@YA?AVerror_code@system@4@PBD0ABUaddrinfo@@PAPAU7@AAV564@@Z) TAsioSocket.obj
和
Error 2 error LNK2019: unresolved external symbol __imp__freeaddrinfo@4 referenced in function "void __cdecl boost::asio::detail::socket_ops::freeaddrinfo(struct addrinfo *)" (?freeaddrinfo@socket_ops@detail@asio@boost@@YAXPAUaddrinfo@@@Z) TAsioSocket.obj
我认为生成的库必须缺少某些东西,但我不知道是什么(也许我在生成 Boost Libs 时缺少命令输入?)。我知道Asio依赖于System,但libboost_system已经生成。我尝试在/stage/lib的库中搜索,但找不到函数getaddrinfo 。