zoukankan      html  css  js  c++  java
  • 编译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?的编译。

    详细自己看。

  • 相关阅读:
    response.redirect三种新页面转向方法
    respones.redirect 打开新的页面的两个方法
    临时表
    ODBC方式操作oracle数据库
    OLEDB方式操作oracle数据库
    oracle所有的乱码解决方案
    引用HM.Util.Ioc 的时候报错
    js webstrom中svn的配置及使用
    js vs2013中允许js访问json文件的解决方案
    Oracle 字符集常见字符集及解决方案
  • 原文地址:https://www.cnblogs.com/chenfool/p/3750007.html
Copyright © 2011-2022 走看看