zoukankan      html  css  js  c++  java
  • ubuntu 16.04 下更换boost版本

      

    如果是新机器,没装过boost,那么直接一条命令

    sudo apt-get install libboost-all-dev


    头文件一般安装在

    /usr/include

    下面有一个目录boost,里面是头文件。而库文件一般都放在

    /usr/lib/x86_64-linux-gnu
    

    目录下。比如libboost_system.a文件。

      

    一 如何查看当前安装的boost版本

    dpkg -S /usr/include/boost/version.hpp


    通过上面的命令,你就可以发现boost的版本了,查看结果可能如下:

    libboost1.54-dev: /usr/include/boost/version.hpp


    二 如何删除当前安装的boost

    sudo apt-get autoremove libboost1.54-dev


    那么就可以删除boost了。上面的libboost1.54-dev是在第一步中看到的版本。

    注意的是,如果你使用的是以下命令安装的boost

    sudo apt-get install libboost-dev

    那么很有可能,在目录/usr/lib/x86_64-linux-gnu下并没有libboost_system.a等文件,这个是要注意的。

      三 如何安装旧版本boost:

      1 下载旧版本,我的是下载1.55的,对应版本路径:

      https://sourceforge.net/projects/boost/files/boost/1.55.0/ 

      2 在根目录下执行:   

             ./bootstrap.sh --with-toolset=clang 

      3 执行:

      ./b2 install --build-type=complete --layout=versioned threading=multi --prefix="/usr/lib/boost-1.55"

      编译完成后使用:

      4 设置环境变量

      以boost库的存放目录/usr/boost为例, 打开/etc/profile, 追加以下内容(前两行为编译时路径): 

      export CPLUS_INCLUDE_PATH=/usr/boost/include:$CPLUS_INCLUDE_PATH

      export LIBRARY_PATH=/usr/boost/lib:$LIBRARY_PATH

      export LD_LIBRARY_PATH=/usr/boost/lib:$LD_LIBRARY_PATH

       最后执行命令使环境变量生效:

      # source /etc/profile

      5 测试结果:

      新建文件boost_test.cpp

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

      编译:g++ boost_test.cpp -o boost_test

     四 boost库的科普:

      Boost库是为C++语言标准库提供扩展的一些C++程序库的总称。
    Boost库由Boost社区组织开发、维护。其目的是为C++程序员提供免费、同行审查的、可移植的程序库。Boost库可以与C++标准库完美共同工作,并且为其提供扩展功能。Boost库使用Boost License来授权使用,根据该协议,商业的非商业的使用都是允许并鼓励的。
    Boost社区建立的初衷之一就是为C++的标准化工作提供可供参考的实现,Boost社区的发起人Dawes本人就是C++标准委员会的成员之一。在Boost库的开发中,Boost社区也在这个方向上取得了丰硕的成果。在送审的C++标准库TR1中,有十个Boost库成为标准库的候选方案。在更新的TR2中,有更多的Boost库被加入到其中。从某种意义上来讲,Boost库成为具有实践意义的准标准库。
      大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。里面有许多具有工业强度的库,如graph库。
    很多Boost中的库功能堪称对语言功能的扩展,其构造用尽精巧的手法,不要贸然的花费时间研读。Boost另外一面,比如Graph这样的库则是具有工业强度,结构良好,非常值得研读的精品代码,并且也可以放心的在产品代码中多多利用。
     
      参考文档:
    1 https://baike.baidu.com/item/Boost%E5%BA%93 
    2 https://sourceforge.net/projects/boost/files/boost/1.55.0/ 
    3 https://blog.csdn.net/dongchongyang/article/details/72718687
    4 http://valleylord.github.io/post/201601-boost-install/ 
  • 相关阅读:
    [VueJS + Typescript] Decouple Dependencies Using IoC Containers in Vue with TypeScript and InversifyJS
    便利店选址
    spoj 1811 Longest Common Substring (后缀自动机)
    sharepoint 2013 根据网站模版创建网站,并赋值网站权限 create a site by custom site template
    一则 ORA-00471 处理方法
    好端端的项目重新运行的时候却不行了!!!
    C语言指针和数组知识总结(下)
    Java EE登陆界面生成随机数防止恶意注册或者登录
    ASP.NET获取上传图片的大小
    Not able to reset SmartRF04DD
  • 原文地址:https://www.cnblogs.com/dylancao/p/9054821.html
Copyright © 2011-2022 走看看