精华内容
下载资源
问答
  • Linux 安装boost | 使用的方法

    千次阅读 2020-10-09 23:13:56
    Linux 安装Boost (建议买一个某云/某腾服务器, 又便宜有又快, 不需要虚拟机这么麻烦!) Boost库是为C++语言标准库提供扩展的一些C++程序库的总称,由Boost社区组织开发、维护。Boost库可以与C++标准库完美共同工作,...

    起语

    版权声明:

    https://blog.csdn.net/mlyjqx/article/details/74783811

    Linux 安装Boost

    (建议买一个某云/某腾服务器, 又便宜有又快, 不需要虚拟机这么麻烦!)

    Boost库是为C++语言标准库提供扩展的一些C++程序库的总称,由Boost社区组织开发、维护。Boost库可以与C++标准库完美共同工作,并且为其提供扩展功能。今天就介绍一下Linux的安装

    一、安装方法

    安装boost的时候,其实很简单,按如下步骤安装:

    wget http://sourceforge.net/projects/boost/files/boost/1.54.0/boost_1_54_0.tar.gz
    tar -xzvf boost_1_54_0.tar.gz
    cd boost_1_54_0
    ./bootstrap.sh --prefix=/usr/local
    ./b2 install --with=all
    boost库被安装在/usr/local/lib下面

    二、编译错误

    若编译带有boost库的应用程序时,如在终端
    运行命令:

    g++ syslogem.cpp -lboost_system

    若出现如下错误

    undefined reference to boost::system::generic_category()' undefined reference toboost::system::generic_category()’
    undefined reference to `boost::system::system_category()’

    只好添加路径

    g++ syslogem.cpp -L/usr/local/lib -lboost_system

    三、运行错误

    若再运行阶段出现如下错误

    error while loading shared libraries: libboost_system.so.1.54.0: cannot open shared object file: No such file or directory

    在可以进行如下解决:

    1)添加环境变量:LD_LIBRARY_PATH=/usr/local/lib

    查看头文件
    /usr/local/include/boost/…
    如这次的示例: cat /usr/local/include/boost/lexical_cast.hpp

    #include <iostream>
    #include <string>
    #include <boost/lexical_cast.hpp>
    
    #define ERROR_LEXICAL_CAST 1
    
    int main() {
    
        using boost::lexical_cast;
        int a = 0;
        double b = 0.0;
        std::string s = "";
        int e = 0;
    
        try {
            // ----- 字符串 ---> 数值
            a = lexical_cast<int>("123");
            b = lexical_cast<double>("123.12");
            // ----- 数值 --> 字符串
            s = lexical_cast<std::string>("123456.7");
            // ----- 异常处理演示
            e = lexical_cast<int>("abc");
        } catch (boost::bad_lexical_cast& e) {
            std::cout << e.what() << std::endl;
            return ERROR_LEXICAL_CAST;
        }
    
        std::cout << a << std::endl;
        std::cout << b << std::endl;
        std::cout << s << std::endl;
    
        std::cout << "Hello world" << std::endl;
        return 0;
    }
    

    运行结果:
    在这里插入图片描述

    帮助文档:

    在这里插入图片描述

    http://zh.highscore.de/cpp/boost/frontpage.html

    结语:

    时间: 2020-10-09

    展开全文
  • Linux 安装Boost

    2021-01-26 20:50:29
    1: 安装环境: 华为鲲鹏云服务器,系统Ubuntu18.04 arm-64,1核,1G,1M 2: 首先更新 2.1 apt-get update 2.2 apt upgrade 3: 安装依赖项 3.1 apt-get install libboost-all-dev 4: 下载源码并编译 4.1: cd ...

     

    1: 安装环境:

    华为鲲鹏云服务器,系统Ubuntu18.04 arm-64,1核,1G,1M

    2: 首先更新

    2.1 apt-get update

    2.2 apt upgrade

    3: 安装依赖项

    3.1 apt-get install libboost-all-dev

    4: 下载源码并编译

    4.1: cd 到安装目录

    cd /usr/local/src

    4.2: 下载源码

    wget https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.tar.gz

    4.3: 解压文件

    4.3.1: 解压

    tar zxvf boost_1_66_0.tar.gz
    4.3.2: 进入目录

    cd boost_1_66_0

    4.4: 开始编译

    4.4.1: 设置参数

    ./bootstrap.sh –prefix=/usr/local/boost

    4.4.2: 编译

    ./b2 -j8

    (说明,编译过程比较慢,由于服务器资源限制,中途报错内存不足,错误内容为:

    g++: internal compiler error: Killed (program cc1plus) )

    4.4.2.1: 增加内存交换区以解决该错误,若未报该错误,直接进入第5步(安装与配置)

    sudo dd if=/dev/zero of=/swapfile bs=64M count= 128
    (count的大小就是增加的swap空间的大小,64M是块大小,所以空间大小是bs*count=8192MB)

    4.4.2.2 : 格式化分区

    sudo mkswap /swapfile
    (把刚才空间格式化成swap格式)

    4.4.2.3: 启用分区

    sudo swapon /swapfile
    (使用刚才创建的swap空间)

    4.4.2.4: 重新编译

    ./b2 -j8

    5: 安装与配置

    5.1: 安装

    ./b2 install

    5.2: 配置

    5.2.1: 配置参数

    vim /etc/profile

    5.2.2: 写入参数

    export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/boost/include
    export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/boost/lib

    (在文件末尾添加如下内容,添加后,按Esc,输入wq!保存退出)

    5.3: 启用环境

    source /etc/profile

    5.4: 添加动态库

    5.4.1: 打开文件

    vim /etc/ld.so.conf

    5.4.2: 添加配置

    /usr/local/boost/lib

    (在文件末尾添加如下内容,添加后,按Esc,输入wq!保存退出)

    5.5: 执行配置

    sudo ldconfig

    展开全文
  • Linux安装使用boost

    2021-05-13 20:05:59
    Linux安装使用boost入门指导获得boostboost分布只需要头文件的库使用boost建立一个简单的程序准备使用boost二进制文件库把你的程序链接到boost库1.获得boost下载boost_1_46_1.tar.bz2解压2.boost分布boost_1_46_1....

    Linux上安装使用boost入门指导获得boostboost分布只需要头文件的库使用boost建立一个简单的程序准备使用boost二进制文件库把你的程序链接到boost库

    1.获得boost

    下载boost_1_46_1.tar.bz

    2解压

    2.boost分布

    boost_1_46_1.........................boost根目录

    boost/.....................................所有boost头文件

    libs/........................................Tests,.cpps,docs等的库文件注意:

    (1)boost根目录(通常是/usr/local/boost_1_46_1)想到$BOOST_ROOT变量中(2)编译程序时如果用到boost库,需要指定头文件路径-I$BOOST_ROOT(3)因为所有头文件都在boost文件夹下,并且头文件都是hpp后缀,所#include形如:

    #include

    3.只需要头文件的库绝大多数的boost库都是header-noly的:它们完全由包含模板和inline函数的头文件组成,不需要单独编译和二进制库文件,也不需要链接时特别对待。

    只有下面的boost库必需单独built:

    Boost.FilesystemBoost.GraphParallelBoost.IOStreamsBoost.MPIBoost.ProgramOptionsBoost.Python

    (see the Boost.Python build documentation before building and installing

    it)Boost.RegexBoost.SerializationBoost.SignalsBoost.SystemBoost.ThreadBoost.Wave下面这些单独built是可选(optional)的:

    Boost.DateTime  Boost.Graph  Boost.Math  Boost.Random  Boost.Test4.使用boost建立简单的程序下面的程序(example.cc)只用到header-only库。它是从标准输入中读入一串整数,使用Boost.Lambda每个数乘以3后输出。

    view sourceprint?

    #include

    #include

    #include

    #include

    int main(){using namespace boost::lambda;typedef

    std::istream_iterator in;std::for_each(in(std::cin), in(), std::cout

    << (_1 * 3) << " " );}

    编译:g++  -I$BOOST_ROOT  example.cc  -o  example运行:echo 1 2 3 |

    ./example5.准备使用boost二进制库如果你的程序用到需要单独编译的boost库,你需要首先获得这些二进制库文件。

    5.1编译安装所有二进制库文件cd $BOOST_ROOT./bootstrap.sh  --help./bootstrap.sh

    --prefix=/usr/local    ##其实默认情况下prefix的值就是/usr/local此时生成了bjam可执行文件,这个东西就是用来编译boost库的。

    ./bjam  install5.2仅安装指定的二进制库文件下面均使用系统默认的编译器,即Linux上的gcc。

    5.2.1安装Boost.buildBoost.Build是一个用于开发、测试、安装软件的基于文本的系统。Boost.Build的生成安装步骤:

    (1)cd $BOOST_ROOT/tools/build/v2(2)./bootstrap.sh(3)./bjam  install

    --prefix=/usr/local/      ##prefix是Boost.Build安装位置(4)把prefix/bin放到PATH中          ##当然/usr/local/bin已经PATH中了5.2.2调用bjam时不指定toolset则使用系统默认的编译器。如果你的Linux上装了不同版本的gcc,则使用toolset选项时可以指定版本号:toolset=gcc-4.45.2.3指定build路径,通过--build-dir=/path选项,不指定时默认在当前路径下创建bin.v2文件夹,把生成的文件放在其内。

    5.2.4调用bjamcd  $BOOST_ROOTbjam  --build-dir=./build-boost  toolset=gcc

    stage上面的命令将创建static and shared non-debug multi-threaded variants of the

    libraries.如果要建立所有的variants,请使用"--build-type=complete"选项。

    所有的boost二进制库文件将放在stage/lib/下,如果你要另外指定路径,请使用“--stagedir=directory"选项。

    注意为节省build时间,你可能需要少build一些库文件:

    查看库文件名称  --show-libraries限制build哪些库  --with-libraryname或者--without-libraryname选择特定的build

    variant  adding release or debug to the command

    line友情提示:Boost.Build会生成很多报告输出,如果你能保证建立过程不出错误,你可以禁止这些输出以节省时间。方法:在命令后追加”>build.log

    2>&1"6.把你的程序链接到boost库下面的程序是从邮件中抽取“主题”内容,它用到了Boost.Regex库,这个库是需要单独编译的。

    view sourceprint?

    #include

    #include

    #include

    int main(){std::string line;boost::regex pat( "^Subject: (Re: |Aw: )*(.*)"

    );while (std::cin){std::getline(std::cin, line);boost::smatch matches;if

    (boost::regex_match(line, matches, pat))std::cout << matches[2] <<

    std::endl;}

    }

    编译:

    方法A:g++  -I$BOOST_ROOT  example.cc -o example  $BOOST_ROOT/stage/lib/

    -lboost_regex.a方法B:g++  -I$BOOST_ROOT  example.cc -o example

    -L$BOOST_ROOT/stage/lib/ -lboost_regex当你要使用多个库源于一个路径时使用方法B就省力了(paid

    off)。注意到方法B中并没有指定.a(静态库)还中.so(动态库),系统将自动地帮你选择使用静态库还是动态库,当然你可以通过选项“-static"显示地指定。

    6.1库文件的命名方式拿libboost_regex-gcc34-mt-d-1_36来说:

    lib....................................通用前缀boost_regex.....................库名gcc34...............................编译时使用的toolset是gcc-3.4mt...................................编译时是支持多线程的d/s/g/y/p..........................ABI

    tag1_36................................Tag

    version6.2运行我们的程序首先新建一个文本文件mail.txtview sourceprint?

    To: George ShmidlapFrom: Rita MarloweSubject: Will Success Spoil Rock

    Hunter?

    ---See subject.

    如果我们的程序链接到了一个共享动态库,我们需要让系统知道到哪儿去加载它。请看我的~/.bashrc文件:

    view sourceprint?

    #boostexport BOOST_ROOT="/usr/local/boost_1_46_1"export

    LD_LIBRARY_PATH="/usr/local/boost_1_46_1/stage/lib:$LD_LIBRARY_PATH"运行程序:./example

    Will Success Spoil Rock Hunter?

    展开全文
  • Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。 Boost库由C++标准委员会库工作组成员发起,其中...在linux安装过程如下:去官方网站下载最新的:http://sourceforge.n...

    Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。Boost由于其对跨平台的强调,对标准C++的强调,与编写平台无关。

    在linux安装过程如下:

    去官方网站下载最新的:http://sourceforge.net/projects/boost/files/boost/1.47.0/ or www.boost.org

    一,最简单的方法:

    apt-cache search boost

    搜到所有的boost库

    然后:

    sudo apt-get install libboost-all-dev

    安装相应的库

    二,编译安装,

    你需要到官方网站下载最新的版本,最新已经到1.47.0了

    1.下载后解压到/opt/boost_1_47_0

    2.解决依赖关系 sudo apt-get install python-dev gccxml

    如果还不全,就用apt-cache depends XXXXXXX查去

    3.编译bjam:

    #cd /opt/boost_1_47_0

    #sudo ./bootstrap.sh

    编译成功

    4.编译boost

    #sudo ./bjam

    开始编译

    大约要个十几分钟

    编译完成后:

    The Boost C++ Libraries were successfully built!

    The following directory should be added to compiler include paths:

    /home/terry/Local/boost_1_47_0

    The following directory should be added to linker library paths:

    /home/terry/Local/boost_1_47_0/stage/lib

    因为我是解压到/home/terry/Local/boost_1_46_1下了

    所以编译完了是这样的

    5.update动态链接库:

    sudo ldconfig

    安装完毕

    三,测试使用:

    1.测试代码

    #cat test.cpp

    #include

    #include

    int main()

    {

    using boost::lexical_cast;

    int a= lexical_cast("123456");

    double b = lexical_cast("123.456");

    std::cout << a << std::endl;

    std::cout << b << std::endl;

    return 0;

    }

    2.编译,运行

    --g++ -o test test.cpp

    #ls

    test test.cpp

    # ./test

    123456

    123.456

    展开全文
  • LinuxBoost编译安装

    万次阅读 多人点赞 2017-06-20 16:43:37
    Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是...
  • Linuxboost库的安装

    2021-05-13 20:05:57
    最近由于编译一个程序用到了C++的boost库,所以便安装了这个库。但是,其中遇到了一些小问题。所以记录下来,以供别人参考。首先说一下我的环境:Ubuntu 12.04 32bit, gcc 4.6.3其实在ubuntu下,可以用一下命令直接...
  • 不少人在Linux安装boost库的时候出现了问题,在使用c++的时候会接触到boost库,下面小编就给大家介绍下Linux系统安装boost库的方法,一起来学习下吧。环境:Ubuntu 12.04 32bit, gcc 4.6.3其实在ubuntu下,可以用...
  • 编译安装 wget https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.tar.gz gzip -dv boost_1_67_0.tar.gz tar -zxvf boost_1_67_0.tar ./boostrap.sh --help ./bootstrap.sh ./b2 install 默认...
  • linux boost 安装

    2021-05-16 00:19:11
    sudo apt-get install libboost-dev但是,我这样安装以后,编译程序时出现了很多错误,而且...后来想了一下原因,可能是因为从上面的命令默认安装boost在编译打包时没有开启mpi这个功能。而我的程序需要这个功能。...
  • Linux安装boost库详解

    2021-05-16 05:56:33
    Linux安装和配置boost库并不难,下面以我在Ubuntu8.04(内核2.6.24-24)下安装boost的经验为例,介绍boost安装和配置。(1)下载最新的 boost库,下载地址:(2)解压 boost。若下载的是.tar.gz包,用tar xzvfboost_...
  • 下载boost https://www.boost.org/ 解压 tar -zxvf boost_1_76_0.tar.gz 安装 cd boost_1_76_0 sudo ./bootstrap.sh sudo ./b2 install #文件就被默认安装在/usr/local/include头文件下,库文件就被默认安装...
  • 1.在http://www.boost.org/下载boost安装包boost_1_65_1.tar.gz2.在Centos上解压tar -zxvf ...安装boost库到指定目录./b2 install --prefix=/home/dj/lib/boost/4.如果为了引用方便将目录加到环境变量中在/etc/pro...
  • linux下编译安装boost

    2021-05-14 03:40:45
    linux下编译安装boost库先看一下系统环境Linux o-pc 3.19.0-22-generic #22-Ubuntu SMP Tue Jun 16 17:15:15 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux1、下载并解压boost 1.58 源代码可以去boost的官网下载,这里...
  • 环境: Linux s12084 2.6.9-67.ELsmp #1 SMP Wed Nov 7 13:58:04 EST 2007 i686 i686 i386 GNU/Linuxgcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-47.3)boost 1.37.0去年10月份用过一次再没用过了。今天要用 ...
  • 部分引自:...下载boost的安装包,以boost_1_58_0.tar.gz为例下载完成后进行解压缩:tar zxvf boost_1_58_0.tar.gz2.设置编译器和所选库先进入解压缩后的目录:...
  • boostlinux编译安装

    2021-05-10 08:51:11
    相对于Windows来,Linux下的boost编译简单至极。没有那么多的可选编译器,没有那长的编译时间,没有那么多的硬盘使用量,统一的inlude和lib目录,你熟悉命令行,不使用IDE,不需要我那么罗嗦的介绍怎么配置EditPlus...
  • 获得boostboost分布只需要头文件的库使用boost建立一个简单的程序准备使用boost二进制文件库把你的程序链接到boost库1.获得boost解压2.boost分布boost_1_46_1.........................boost根目录boost/..............
  • linux 安装/卸载boost

    千次阅读 2018-12-03 09:31:37
    https://blog.csdn.net/wohenfanjian/article/details/51815133
  • 可移植的 C++ 标准库 Boost 发布了 1.66.0 版本,Boost 库是一个经过千锤百炼、可移植、提供源代码的 C++ 库,作为标准库的后备,是 C++ 标准化进程的发动机之一,由 C++ 标准委员会库工作组成员发起。 使用 VS ...
  • boost1.74.0安装 下载boost_1_74_0.tar.gz源码,解压boost_1_74_0.tar.gz,并进入boost_1_74_0文件夹,安装命令如下: tar zxvf boost_1_74_0.tar.gz cd boost_1_74_0 ./bootstrap.sh ./b2 --without-python -q ...
  • 最近有开始折腾Linux了,没办法,太多的东西都是在Linux下很高效并且不提供VS的工程文件,所以还是学学Linux吧,免得以后被人说做服务器竟然不懂Linux。这篇文章的前提是系统是Ubuntu12.04LTS,系统完全更新过,并且...
  • 下载boost的安装包,以boost_1_58_0.tar.gz为例下载完成后进行解压缩:tar zxvf boost_1_58_0.tar.gz12.设置编译器和所选库先进入解压缩后的目录:cd boost_1_58_01然后运行bootstrap.sh脚本并设置相关参数:./...
  • https://sourceforge.net/projects/boost/files/boost/1.58.0/
  • linux编译安装boost

    2021-05-13 20:04:31
    实际上我就是用默认的bjam install,偷懒了,,,linux默认头文件会放到/usr/local/include下面 lib放到/usr/local/lib下面1.下载 boost-1_52http://sourceforge.net/projects/boost/files/boost/1.52.0/2. 将文件...
  • 编译安装 ​​​​ wget https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.tar.gz tar -zxvf boost_1_67_0.tar.gz ...boost库被安装在/usr/local/lib下面 默认安装在/usr/local的lib,.
  • Linux安装boost环境

    2021-09-24 10:56:48
    在终端依次运行如下命令: wget ...tar -xzvf boost_1_54_0.tar.gz cd boost_1_54_0 ./bootstrap.sh --prefix=/usr/local ./b2 install --with=all 即可
  • Linux安装使用boost入门指导获得boostboost分布只需要头文件的库使用boost建立一个简单的程序准备使用boost二进制文件库把你的程序链接到boost库1.获得boostboost_1_46_1.tar.bz2解压2.boost分布boost_1_46_1........
  • linux安装boost_1_49相关系统信息:ubantu12.04LTS ,boost_1_49_01. 下载boost库,到官网上下即可。http://www.boost.org/下载完解压即可2. 权限设置: 我在安装的过程中出现了如下问题:权限不够administrator@...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,868
精华内容 13,947
关键字:

linux安装boost

linux 订阅