zoukankan      html  css  js  c++  java
  • boost.asio学习笔记一、linux下boost库的安装

    欢迎转载,转载请注明原文地址http://blog.csdn.net/majianfei1023/article/details/46761029


    学习开源库第一步就是编译安装好库,然后执行成功一个demo,然后才干进行之后的工作。

    以下就来讲讲boost库在linux下的安装。

    [mjf@localhost ~]$ tar -zxvf boost_1_55_0.tar.gz
    [mjf@localhost boost_1_55_0]$ ./bootstrap.sh --prefix=/home/mjf/lib
    [mjf@localhost boost_1_55_0]$ sudo ./b2 install


    1.解压


    2.生成bjam

    上述命令能够带有各种选项,详细可參考帮助文档: ./bootstrap.sh --help。当中--prefix參数。能够指定安装路径。假设不带--prefix參数的话,默认路径是 /usr/local/include 和 /usr/local/lib,分别存放头文件和各种库。

    (不带prefix的话,理论上不须要手动配置环境变量!)


    3.编译,安装
    这里是所有编译。

    当然也能够选择仅仅编译一部分。选项 --with-<library> 仅仅编译指定的库,如输入--with-regex就仅仅编译regex库了。
    编译完毕后,进行安装,也就是将头文件和生成的库,放到指定的路径(--prefix)下

    bjam的一些经常使用的參数,列表例如以下:

    --build-dir=<builddir> 编译的暂时文件会放在builddir里(这样比較好管理,编译完就能够把它删除了)
    --stagedir=<stagedir> 存放编译后库文件的路径,默认是stage
    --build-type=complete

    编译全部版本号,不然仅仅会编译一小部分版本号,确切地说是相当于:

    variant=release, threading=multi;link=shared|static;runtime-link=shared

    variant=debug|release 决定编译什么版本号(Debug or Release?)
    link=static|shared 决定使用静态库还是动态库
    threading=single|multi 决定使用单线程还是多线程库
    runtime-link=static|shared 决定是静态还是动态链接C/C++标准库
    --with-<library> 仅仅编译指定的库。如输入--with-regex就仅仅编译regex库了
    --show-libraries 显示须要编译的库名称


    4.配置环境变量

    把/usr/mjf/lib/lib追加到动态链接库配置文件/etc/ld.so.conf,然后直接执行ldconfig。

    /etc/profile增加下面两行:

    BOOST_INCLUDE=/home/mjf/lib/include

    export=BOOST_INCLUDE

    BOOST_LIB=/home/mjf/lib/lib

    export=BOOST_LIB

    然后运行source /etc/profile让马上生效。


    安装完毕。我们就来执行一个样例:

    #include <iostream>
    #include <boost/timer.hpp>
    using namespace std;
    
    int main()
    {
    	boost::timer t;
    	cout << "max timespan:"<<t.elapsed_max()/3600<<"h"<<endl;
    
    	cout << "min tmiespan:"<<t.elapsed_min()<<"s"<<endl;
    
    	cout<<"now time elapsed:"<<t.elapsed()<<"s"<<endl;
    	return 0;
    }
    


    g++ -o test test.cpp -I$BOOST_INCLUDE -L$BOOST_LIB

    ./test


  • 相关阅读:
    C++标准转换运算符(2)
    C++标准转换运算符(1)
    未能加载视图状态。正在向其中加载视图状态的控件树必须与前一请求期间用于……
    我的第一篇博客
    C语言C语言程序
    C语言基本运算符
    C语言流程控制
    C语言关键字、标识(zhi)符、注释
    msado15.dll版本引发的离奇故障
    mySQL错误: The used table type doesn't support FULLTEXT indexes
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/6737258.html
Copyright © 2011-2022 走看看