zoukankan      html  css  js  c++  java
  • Linux:编译安装boost 1.69库

    Boost库是为C++语言标准库提供扩展的一些C++程序库的总称,由Boost社区组织开发、维护。在C++的地位感觉可以和Spring在Java中相比。

    boost向来有准标准库之称,很多新特性例如智能指针等都是先在boost中实现,后来被吸收到标准库之中。而且boost实现了日志、算法、日期、地理、数学、线程协程等各种实用工具,所以如果要学习C++,boost是必须要学习的一个东西。
    下面记录在Linux下编译安装boost1.69库的过程步骤,希望对大家有用。

    测试平台

    Linux版本:Ubuntu 18.04 LTS

    Boost版本:1.69.0

    1、安装依赖库文件
    linuxidc@linuxidc:~/www.linuxidc.com/Linux公社 -$ sudo apt-get install libbz2-dev
    
    [sudo] linuxidc 的密码:
    
    正在读取软件包列表... 完成
    
    正在分析软件包的依赖关系树
    
    正在读取状态信息... 完成
    
    将会同时安装下列软件:
    
    bzip2-doc
    
    下列【新】软件包将被安装:
    
    bzip2-doc libbz2-dev
    
    升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 218 个软件包未被升级。
    
    需要下载 324 kB 的归档。
    
    解压缩后会消耗 513 kB 的额外空间。
    
    您希望继续执行吗? [Y/n] Y

    Linux:编译安装boost 1.69库Linux:编译安装boost 1.69库

    #安装mpi库
    linuxidc@linuxidc:~/www.linuxidc.com/Linux公社 -$ sudo apt-get install libicu-dev
    
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树      
    正在读取状态信息... 完成      
    将会同时安装下列软件:
      gir1.2-harfbuzz-0.0 icu-devtools libglib2.0-dev libglib2.0-dev-bin
      libgraphite2-dev libharfbuzz-dev libharfbuzz-gobject0 libicu-le-hb-dev
      libicu-le-hb0 libiculx60 libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5
    建议安装:
      libglib2.0-doc libgraphite2-utils icu-doc
    下列【新】软件包将被安装:
      gir1.2-harfbuzz-0.0 icu-devtools libglib2.0-dev libglib2.0-dev-bin
      libgraphite2-dev libharfbuzz-dev libharfbuzz-gobject0 libicu-dev
      libicu-le-hb-dev libicu-le-hb0 libiculx60 libpcre16-3 libpcre3-dev
      libpcre32-3 libpcrecpp0v5
    升级了 0 个软件包,新安装了 15 个软件包,要卸载 0 个软件包,有 218 个软件包未被升级。
    需要下载 11.8 MB 的归档。
    解压缩后会消耗 57.4 MB 的额外空间。
    您希望继续执行吗? [Y/n] Y

    Linux:编译安装boost 1.69库Linux:编译安装boost 1.69库

    #支持正则表达式的UNICODE字符集 
    linuxidc@linuxidc:~/www.linuxidc.com/Linux公社 -$ sudo apt-get install Python-dev
    #需要python的话
    linuxidc@linuxidc:~/www.linuxidc.com/Linux公社 -$ sudo apt-get install libbz2-dev
    2、下载安装包
    https://sourceforge.net/projects/boost/files/boost/1.69.0/

    此处我下载的是 boost1.69,0
    解压缩到一个目录

    3、cd 到该目录

    里面有个bootstrap.sh的脚本文件,运行这个脚本
    运行脚本:

    linuxidc@linuxidc:~/www.linuxidc.com/Linux公社 -/boost_1_69_0$ ./bootstrap.sh
    Building Boost.Build engine with toolset gcc... tools/build/src/engine/bin.linuxx86_64/b2
    Detecting Python version... 2.7
    Detecting Python root... /usr
    Unicode/ICU support for Boost.Regex?... /usr
    Generating Boost.Build configuration in project-config.jam...
    
    Bootstrapping is done. To build, run:
    
        ./b2
        
    To adjust configuration, edit 'project-config.jam'.
    Further information:
    
      - Command line help:
        ./b2 --help
        
      - Getting started guide:

    Linux:编译安装boost 1.69库Linux:编译安装boost 1.69库
    根据上图提示,进行编译操作。

    4、开始编译 boost
    编译要一点时间,出去跳跳绳吧,打打拳击吧,输入命令:
    linuxidc@linuxidc:~/www.linuxidc.com/Linux公社 -/boost_1_69_0$ ./b2
    Performing configuration checks
    
        - default address-model    : 64-bit
        - default architecture    : x86
    
    Building the Boost C++ Libraries.
    
    
        - C++11 mutex              : yes
        - lockfree boost::atomic_flag : yes
        - Boost.Config Feature Check: cxx11_auto_declarations : yes
        - Boost.Config Feature Check: cxx11_constexpr : yes
        - Boost.Config Feature Check: cxx11_defaulted_functions : yes
        - Boost.Config Feature Check: cxx11_final : yes
        - Boost.Config Feature Check: cxx11_hdr_mutex : yes
        - Boost.Config Feature Check: cxx11_hdr_tuple : yes
        - Boost.Config Feature Check: cxx11_lambdas : yes

    Linux:编译安装boost 1.69库Linux:编译安装boost 1.69库
    编译成功后的截图如下:
    Linux:编译安装boost 1.69库Linux:编译安装boost 1.69库

    5、开始安装
    将boost库相关文件安装至/usr/local。输入命令:
    sudo ./b2 --prefix=/usr/local/boost install

    Linux:编译安装boost 1.69库Linux:编译安装boost 1.69库
    安装好之后截图:
    Linux:编译安装boost 1.69库Linux:编译安装boost 1.69库

    将boost库添加至环境变量。输入命令:
    gedit /etc/environment
    向文件中增加如下路径:
    CPLUS_INCLUDE_PATH=/usr/local/boost/include
    LIBRARY_PATH=/usr/local/boost/lib

    添加完成后,进行保存操作。

    6、测试案例

    (1)代码编写。输入命令:

    linuxidc@linuxidc:~/www.linuxidc.com/Linux公社 -/boost_1_69_0$ gedit linuxidc.com.Boost.cpp

    打开编辑器,输入以下代码并保存:

    #include <boost/date_time/gregorian/gregorian.hpp>
    #include <iostream> 
    using namespace std;
    int main() 
    { 
        boost::gregorian::date d(boost::gregorian::day_clock::local_day());
        cout << d.year()<<"." << d.month()<<"." <<d.day() <<endl; 
        getchar();
        return 0;
    }
    

    (2)代码 编译。输入命令:

    linuxidc@linuxidc:~/www.linuxidc.com/Linux公社 -/boost_1_69_0$ g++ -I /usr/local/boost/include -L /usr/local/boost/lib linuxidc.com.Boost.cpp -o linuxidc.com

    (3)执行程序。输入命令:

    linuxidc@linuxidc:~/www.linuxidc.com/Linux公社 -/boost_1_69_0$ ./linuxidc.com
    2019.Mar.20

    截图如下
    Linux:编译安装boost 1.69库Linux:编译安装boost 1.69库
    OK,搞定。

  • 相关阅读:
    Windows程序员的Linux快捷键
    Handeler的详细解释
    Asp.Net_Mvc_View
    使用脚本方式和使用控件方式来输出Html内容的区别
    当发布时报错: 找不到 obj\Debug\Package\PackageTmp\xxx.aspx 文件
    网路岗v1.2简单使用
    Html.Encode
    Android开发中的错误
    Asp.Net_Mvc_IgnoreRoute
    Linux目录结构
  • 原文地址:https://www.cnblogs.com/linuxprobe-sarah/p/10640547.html
Copyright © 2011-2022 走看看