使用boost.asio库编译程序

时间:2011-04-20 13:30:47

标签: c++ compiler-errors boost-asio

我已经安装了所有的boost库,但是在编译g++ sda.cpp -lboost_system -lboost_date_time -lboost_regex -lboost_thread -lboost_serialization

#include <boost/asio.hpp>

int main()
{
    return 0;
}

我获得了几个错误,编译失败了。 我使用ubuntu 10.10更新。 编译说:

/tmp/cc6bld0N.o: In function `__static_initialization_and_destruction_0(int, int)':
sda.cpp:(.text+0x52): undefined reference to `boost::system::generic_category()'
sda.cpp:(.text+0x5e): undefined reference to `boost::system::generic_category()'
sda.cpp:(.text+0x6a): undefined reference to `boost::system::system_category()'
/tmp/cc6bld0N.o: In function `boost::asio::error::get_system_category()':
sda.cpp:(.text._ZN5boost4asio5error19get_system_categoryEv[boost::asio::error::get_system_category()]+0x5): undefined reference to `boost::system::system_category()'
collect2: ld returned 1 exit status

有什么问题?

2 个答案:

答案 0 :(得分:1)

不太可能是您的问题,但您不需要链接boost_date_timeboost_regexboost_serializationboost_thread

samm$ cat asio.cc
#include <boost/asio.hpp>

int main()
{
    return 0;
}
samm$ g++ asio.cc  -I /opt/local/include/ -L/opt/local/lib -lboost_system -Wl,-rpath,/opt/local/lib
samm$ 

答案 1 :(得分:0)

IIRC,Ubuntu有* -dev包进行开发。你确定你已经安装了libboost-dev而不是libboost吗?