我在Visual Studio 2013上,下载了常规的boost库(版本1.55)并将它们安装到C:/ Program Files / Boost /
然后我创建了一个新的空C ++项目,并将以下内容添加到我的"包含目录":
C:\ Program Files \ Boost \ boost_1_55_0;
这是我的代码:
#include <boost/asio.hpp>
#include <iostream>
int main(int argc, char * argv[])
{
boost::asio::io_service io_service;
for (int x = 0; x < 42; ++x)
{
io_service.poll();
std::cout << "Counter: " << x << std::endl;
}
return 0;
}
bootstrap
和./b2
执行完毕后,我将以下路径添加到&#34;其他库依赖项&#34;:
C:\ Program Files \ Boost \ boost_1_55_0 \ stage \ lib
但是我收到以下错误消息:
Main.obj : error LNK2019: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::system_category(void)" (?system_category@system@boost@@YAAEBVerror_category@12@XZ) referenced in function "public: __cdecl boost::system::error_code::error_code(void)" (??0error_code@system@boost@@QEAA@XZ)
Main.obj : error LNK2019: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::generic_category(void)" (?generic_category@system@boost@@YAAEBVerror_category@12@XZ) referenced in function "void __cdecl boost::system::`dynamic initializer for 'errno_ecat''(void)" (??__Eerrno_ecat@system@boost@@YAXXZ)
如果我转到C:\Program Files\Boost\boost_1_55_0\stage\lib
,则其中包含:
更新:看来我的标题没有正确构建或某些内容丢失。我刚从这里下载并运行了安装程序:
http://sourceforge.net/projects/boost/files/boost-binaries/1.55.0/
VS 2013是msvc12
然后我正常设置我的附加库依赖项。
答案 0 :(得分:1)
尝试在项目设置中将/Gd
更改为/Gr
。这可能是由于调用约定的不同。
答案 1 :(得分:1)
下面的这两个定义搞乱了我的链接器,抛出一个美丽的“LNK2001:未解析的外部符号”。你的代码中有什么地方吗?
#define BOOST_FILESYSTEM_NO_DEPRECATED
#define BOOST_FILESYSTEM_NO_LIB