编译boost asio http/server 方法
这段时间学习boost 的asio 编程,想编译asio自带的http/server的程序,无奈在网上根本找不到方法,只能自己摸索学习。
登陆boost asio 的example 目录,(我 boost 安装在/opt目录下)
cd /opt/boost_1_55_0/libs/asio/example/cpp03/http/server
编译命令:
g++ *.cpp -lboost_system -lpthread -I/usr/local/include/boost -L/usr/local/lib -o main
我之前自己编译了一次简单的asio的程序,编译命令不需要加 –lpthread,详细参考博文:
http://www.cnblogs.com/chenfool/p/3719428.html
但编译http/server的程序,不加 –lpthread 命令会出现如下错误:
/tmp/ccODZX6Y.o: In function `boost::asio::detail::posix_signal_blocker::posix_signal_blocker()':
server.cpp:(.text._ZN5boost4asio6detail20posix_signal_blockerC2Ev[_ZN5boost4asio6detail20posix_signal_blockerC5Ev]+0x44): undefined reference to `pthread_sigmask'
/tmp/ccODZX6Y.o: In function `boost::asio::detail::posix_signal_blocker::~posix_signal_blocker()':
server.cpp:(.text._ZN5boost4asio6detail20posix_signal_blockerD2Ev[_ZN5boost4asio6detail20posix_signal_blockerD5Ev]+0x2a): undefined reference to `pthread_sigmask'
/tmp/ccODZX6Y.o: In function `boost::asio::detail::posix_thread::~posix_thread()':
server.cpp:(.text._ZN5boost4asio6detail12posix_threadD2Ev[_ZN5boost4asio6detail12posix_threadD5Ev]+0x1d): undefined reference to `pthread_detach'
/tmp/ccODZX6Y.o: In function `boost::asio::detail::posix_thread::join()':
server.cpp:(.text._ZN5boost4asio6detail12posix_thread4joinEv[boost::asio::detail::posix_thread::join()]+0x25): undefined reference to `pthread_join'
/tmp/ccODZX6Y.o: In function `boost::asio::detail::posix_thread::start_thread(boost::asio::detail::posix_thread::func_base*)':
server.cpp:(.text._ZN5boost4asio6detail12posix_thread12start_threadEPNS2_9func_baseE[boost::asio::detail::posix_thread::start_thread(boost::asio::detail::posix_thread::func_base*)]+0x24): undefined reference to `pthread_create'
collect2: ld returned 1 exit status
可以看到,错误信息中说asio 的库中,有使用多线程的库,所以在编译时也必须同时声明使用pthread的库来编译。
此编译命令同时也支持其余http/server?的编译。
详细自己看。
编译boost asio http/server 方法的更多相关文章
- boost asio tcp server 拆分
从官方给出的示例中对于 boost::asio::ip::tcp::acceptor 类的使用,是直接使用构造函数进行构造对象,这一种方法用来学习是一个不错的方式. 但是要用它来做项目却是不能够满足我 ...
- boost::asio译文
Christopher Kohlhoff Copyright © 2003-2012 Christopher M. Kohlhoff 以Boost1.0的软件授权进行发布(见附带的LICENS ...
- Boost.Asio技术文档
Christopher Kohlhoff Copyright © 2003-2012 Christopher M. Kohlhoff 以Boost1.0的软件授权进行发布(见附带的LICENSE_1_ ...
- Boost Asio(一)初探
一.简介 Boost Asio ( asynchronous input and output)关注数据的异步输入输出.Boost Asio 库提供了平台无关性的异步数据处理能力(当然它也支持同步数据 ...
- c++ boost asio库初学习
前些日子研究了一个c++的一个socket库,留下范例代码给以后自己参考. 同步server: // asio_server.cpp : コンソール アプリケーションのエントリ ポイントを定義します. ...
- 编译boost程序出现如下错误fatal error LNK1104: cannot open file 'libboost_system-vc100-mt-gd-1_54.lib'的解决方法
对于如下程序: #include <iostream> #include <boost/asio.hpp> #include <boost/date_time/posix ...
- boost:asio编译
参考:http://hi.baidu.com/need_for_dream/blog/item/c14a28086a504c33e92488b5.html 环境: VS2010, boost1.38. ...
- VS2008下编译BOOST 1.39的ASIO库
由于全部编译BOOST库需要的时间太长,而且耗费空间,况且我只需要用ASIO库,所以就没有必要全部编译了. boost库到www.boost.org上下载. 编译很简单,假设你的boost存放的目录是 ...
- boost.asio包装类st_asio_wrapper开发教程(2014.5.23更新)(一)-----转
一:什么是st_asio_wrapper它是一个c/s网络编程框架,基于对boost.asio的包装(最低在boost-1.49.0上调试过),目的是快速的构建一个c/s系统: 二:st_asio_w ...
随机推荐
- 【转载】一分钟了解两阶段提交2PC(运营MM也懂了)
上一期分享了"一分钟了解mongoDB"[回复"mongo"阅读],本期将分享分布式事务的一种实现方式2PC. 一.概念 二阶段提交2PC(Two phase ...
- GY的实验室 - Phalcon+Nginx+PHP-FPM环境搭建(转)
Phalcon简介 由于半路出家的缘故,没用过几个PHP框架,第一个了解的框架是公司自己的,然后又试着用了Yii,CI.在读了CSDN在某度的高排名翻译文章(PHP开发框架流行度排名:Laravel居 ...
- 用C++、Qt实现的小游戏2048
窗口布局与游戏截图: 实现思路: 1.使用二维数组模拟整个游戏网格,并将二维数组中每个数的大小用作游戏中每个网格中的数据. 2.将对游戏的数据及数据的操作(即玩家的操作对游戏数据的影响)作为一个类,游 ...
- Volatile的特征
Volatile的特征: A.禁止指令重排(有例外)原理: 内存屏障/内存栅栏B.可见性 原理:happens-before 对于volatile修饰的变量,jvm虚拟机只是保证从主内存加载到线程工 ...
- 最长公共字序列.cpp
<span style="color:#993399;">/* By yuan 2014/6/21 At nwpu.xf 1041.最长公共子序列 时限:1000ms ...
- jetty java文件无法删除 java文件占用 delete无效 运行时锁定静态资源的解决方法
前几天jetty下发现java无法删除文件,文件操作后一直被jvm占用,无奈换了tomcat问题消失. 今天又想起来,尝试网上的解决方法,经本人试验,直接修改配置文件有时不能生效,具体原因不清楚,建议 ...
- java的自定义异常类
编写自定义异常类的模式 编写自定义异常类实际上是继承一个Exception标准异常类,用新定义的异常处理信息覆盖原有信息的过程.常用的编写自定义异常类的模式如下: public classCustom ...
- [译]Flutter JSON和序列化
[译]Flutter JSON和序列化 很难想象一个移动应用程序不需要与Web服务器通信或在某些时候容易存储结构化数据.制作网络连接的应用程序时,迟早需要消耗一些好的旧JSON. 本指南介绍了如何 ...
- JAVA 0 的突破
使用IntelliJ Idea 开发的一个Java 处理数据文件折行的问题,整体来说功能比较简单的一个java脚本的开发,跨平台的优势可以处理windows和lunix平台的文件折行 package ...
- oracle服务丢失的处理方法之OracleServiceORCL不存在示例
oracle服务是oracle数据库的重要组成部分,下面就教您oracle服务丢失的处理方法,如果您之前遇到过oracle服务丢失的问题,不妨一看. 今天发现数据库服务器上的所有oracle服务都丢失 ...