boost库的调用ld问题[已解]

       上一篇博客日志中留下了个问题,在完成安装boost 1.51.0库后再编译一个小程序时出现库连接不上,经过一番查找原来在编译连接的时候需要加入库的路径,而不是简单的写上g++ boost_asio.cpp -o boost_asio -lboost_system,后改为g++ -L/usr/local/lib asio.cpp -o asio.cpp -lboost_system -lboost_thread编译成功后连接,以下为编译的源代码。


点击(此处)折叠或打开

  1. #include <boost/asio.hpp>
  2. #include <boost/bind.hpp>
  3. #include <boost/shared_ptr.hpp>
  4. #include <boost/enable_shared_from_this.hpp>
  5. #include <iostream>
  6. #include <iostream>
  7. #include <boost/asio.hpp>

  8. int main(int argc, char* argv[]){
  9.     using namespace boost::asio;
  10.     // 所有asio类都需要io_service对象
  11.     io_service iosev;
  12.     ip::tcp::acceptor acceptor(iosev,
  13.     ip::tcp::endpoint(ip::tcp::v4(), 1000));
  14.     for(;;)
  15.     {
  16.     // socket对象
  17.     ip::tcp::socket socket(iosev);
  18.     // 等待直到客户端连接进来
  19.     acceptor.accept(socket);
  20.     // 显示连接进来的客户端
  21.     std::cout << socket.remote_endpoint().address() << std::endl;
  22.     // 向客户端发送hello
  23.     boost::system::error_code ec;
  24.     socket.write_some(buffer("hello world!"), ec);

  25.     // 如果出错,打印出错信息
  26.     if(ec)
  27.     {
  28.         std::cout <<
  29.         boost::system::system_error(ec).what() << std::endl;
  30.         break;
  31.     }
  32.     // 与当前客户交互完成后循环继续等待下一客户连接
  33.     }
  34.     return 0;
  35. }
运行结果如下图

另外如何不希望老是写入这么长的编译连接字符,可以用eclipse来做一个工程,并设置相关的配置后会自动生成makefile,解除这方面带来的麻烦


<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
阅读(491) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~
评论热议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值