zoukankan      html  css  js  c++  java
  • boost1.59编译安装(可以完全安装,也可定制安装--buildtype=complete,link=static)

    1、下载:

           网址:http://sourceforge.net/projects/boost/files/boost/1.59.0/

           选择:boost_1_59_0.7z或者boost_1_59_0.zip (Windows 8.1企业版操作系统);

                       boost_1_59_0.tar.bz2  ( Linux内核操作系统——Ubuntu 14.04(编译器使用自带的GCC 4.8.2))。

    2、编译:

    • 2.1 Ubuntu 14.04操作系统编译安装boost 1.59.0:

        2.1.1 快速安装Boost:

        在Linux内核的操作系统下安装boost 1.59.0很容易,最简单的方式是在Boost解压缩后的目录下直接执行命令:

       ./bootstrap.sh
    
       ./b2 install

        第一条命令语句booststrap.sh是编译前的配置工作,第二条命令b2开始真正的编译并安装Boost。由于未指定额外选项,Boost将编译Release版本的库文件,把头文件安装到/usr/local/include,库文件安装到/usr/local/lib。

            2.1.2 完整安装Boost:

        完整编译Boost,使用buildtype选项指定编译类型(如不指定默认使用release模式),在bootstrap.sh之后执行如下命令:

       ./b2 --buildtype=complete install

              这样将开始对Boost的完整编译,安装所有调试版、发行版的静态库和动态库。

             2.1.3  定制安装Boost:

              完整编译Boost费时费力,在实际开发中这些库也不会都用到,因此,Boost也允许用户自行选择要编译的库。执行命令:

        ./b2 --show-libraries

              可查看所有必须编译才能使用的库。

              在完全编译的基础上,可使用--with或者--without选项打开或者关闭某个库的编译,如:

        ./b2 --with-date_time --buildtype=complete install

             将仅编译安装date_time库。

             一般可使用如下安装命令:

       sudo ./b2 link=static install       #编译安装所有静态库
    • 2.2 Windows 8.1操作系统安装配置boost 1.59.0:

             直接在官网:http://sourceforge.net/projects/boost/files/boost-binaries/1.59.0/ ,下载:boost_1_59_0-msvc-12.0-64.exe,然后解压配置即可。

            boost_1_59_0-msvc-12.0-64.exe    Visual Studio 2013     64位版本的boost库。

     

     

    error 解决:

    一:使用需要python库

    否则出现如下error:

    ./boost/python/detail/wrap_python.hpp:50:23: fatal error: pyconfig.h: No such file or directory
    compilation terminated.

    "g++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -march=i686 -pthread -fPIC -m32 -DBOOST_ALL_NO_LIB=1 -DBOOST_PYTHON_SOURCE -DNDEBUG -I"." -I"/usr/include/python2.7" -c -o "bin.v2/libs/python/build/gcc-5.4.0/release/threading-multi/object/function_doc_signature.o" "libs/python/src/object/function_doc_signature.cpp"

    ...failed gcc.compile.c++ bin.v2/libs/python/build/gcc-5.4.0/release/threading-multi/object/function_doc_signature.o...

    ..failed updating 58 targets...
    ...skipped 12 targets...
    ...updated 11810 targets...

    使用

    sudo apt-get install python-dev

    bzlib.h: No such file or directory

     理论上,本文适用于boost的各个版本,尤其是最新版本1.48.0;适用于各种C++编译器,如VC6.0(部分库不支持),VS2003,VS2005,VS2008,VS2010,gcc,C++ Builder等。

    1.下载boost源文件

    http://www.boost.org/users/download/ 

    2.安装

    cd /home/boost_1_48_0/
    首先需要编译bjam: ./bootstrap.sh --prefix=/home/boost-1.48.0/sdk/  设置库安装路径

    通过bjam编码boost库: ./bjam  install


    3.设置环境变量
            在/etc/profile.d新建可执行文件boost.sh,添加文件内容:

    #!/bin/sh
    BOOST_INCLUDE=/home/boost-1.48.0/sdk/include/boost 
    BOOST_LIB==/home/boost-1.48.0/sdk/lib
    export BOOST_INCLUDE BOOST_LIB 
    


    命令行执行:source /etc/profile.d/boost.sh
            以后在编译程序时,只需要用:-I$BOOST_INCLUDE -L$BOOST_LIB 即可,还要使用-l指定了链接库。

    然后, /etc/ld.so.conf 文件添加so库的环境变量 /home/boost-1.48.0/sdk/lib(主要关键问题)

    修改完成后,通过ldconfig命令进行重启



    4.遇到的问题及解决方案
    安装过程出现很多和bz及Python库相关的错误,解决方案如下

    命令方式

    sudo apt-get install libbz2-dev    yum install python-dev
    或
    yum install libbz2-dev   yum install python-dev

    图像界面方式

       点击Applications---->Add/Remove Software 去安装这个包文件


    PS 安装过程中的错误:

    libs/iostreams/src/bzip2.cpp:20:56: error: bzlib.h: 没有那个文件或目录
    libs/iostreams/src/bzip2.cpp:31: error: ‘BZ_OK’ was not declared in this scope
    libs/iostreams/src/bzip2.cpp:32: error: ‘BZ_RUN_OK’ was not declared in this scope
    libs/iostreams/src/bzip2.cpp:33: error: ‘BZ_FLUSH_OK’ was not declared in this scope
    libs/iostreams/src/bzip2.cpp:34: error: ‘BZ_FINISH_OK’ was not declared in this scope
    libs/iostreams/src/bzip2.cpp:35: error: ‘BZ_STREAM_END’ was not declared in this scope
    libs/iostreams/src/bzip2.cpp:36: error: ‘BZ_SEQUENCE_ERROR’ was not declared in this scope
    libs/iostreams/src/bzip2.cpp:37: error: ‘BZ_PARAM_ERROR’ was not declared in this scope
    libs/iostreams/src/bzip2.cpp:38: error: ‘BZ_MEM_ERROR’ was not declared in this scope
    libs/iostreams/src/bzip2.cpp:39: error: ‘BZ_DATA_ERROR’ was not declared in this scope
    libs/iostreams/src/bzip2.cpp:40: error: ‘BZ_DATA_ERROR_MAGIC’ was not declared in this scope
    libs/iostreams/src/bzip2.cpp:41: error: ‘BZ_IO_ERROR’ was not declared in this scope
    libs/iostreams/src/bzip2.cpp:42: error: ‘BZ_UNEXPECTED_EOF’ was not declared in this scope
    libs/iostreams/src/bzip2.cpp:43: error: ‘BZ_OUTBUFF_FULL’ was not declared in this scope
    libs/iostreams/src/bzip2.cpp:44: error: ‘BZ_CONFIG_ERROR’ was not declared in this scope
    libs/iostreams/src/bzip2.cpp:48: error: ‘BZ_FINISH’ was not declared in this scope
    //mostly like above....
    

    ./boost/python/detail/wrap_python.hpp:50:23: error: pyconfig.h: No such file or directory
    ./boost/python/detail/wrap_python.hpp:75:24: error: patchlevel.h: No such file or directory
    ./boost/python/detail/wrap_python.hpp:78:2: error: #error Python 2.2 or higher is required for this version of Boost.Python.
    ./boost/python/detail/wrap_python.hpp:142:21: error: Python.h: No such file or directory
    ./boost/python/instance_holder.hpp:34: error: ‘PyObject’ has not been declared
    ./boost/python/instance_holder.hpp:41: error: expected ‘;’ before ‘(’ token
    ./boost/python/instance_holder.hpp:45: error: ‘PyObject’ has not been declared
    ./boost/python/detail/wrapper_base.hpp:21: error: expected initializer before ‘*’ token
    ./boost/python/detail/wrapper_base.hpp:23: error: expected initializer before ‘*’ token
    ./boost/python/detail/wrapper_base.hpp:30: error: expected initializer before ‘*’ token
    ./boost/python/detail/wrapper_base.hpp:34: error: expected initializer before ‘*’ token
    ./boost/python/detail/wrapper_base.hpp:43: error: ‘PyObject’ has not been declared
    ./boost/python/detail/wrapper_base.hpp:44: error: ISO C++ forbids declaration of ‘PyObject’ with no type
    ./boost/python/detail/wrapper_base.hpp:44: error: ‘PyObject’ is neither function nor member function; cannot be declared friend

    windows下编译安装boost.

    先生成bjam,要在vs附带的命令行下执行才可以,在cmd下运行bat可能会卡主不动

    bjam stage --toolset=msvc-9.0 --without-graph --without-graph_parallel --without-math --without-mpi --without-python --without-serialization --without-wave --stagedir="E:oost_1_49" link=static runtime-link=static threading=multi debug release

    默认为32位版本,编译成64位:

    bjam stage --toolset=msvc-9.0 --without-graph --without-graph_parallel --without-math --without-mpi --without-python --without-serialization --without-wave --stagedir="E:oost_1_49_new" link=static runtime-link=static threading=multi address-model=64 debug release

     
    http://www.cnblogs.com/oracleloyal/p/6060779.html
  • 相关阅读:
    对vue-cli各个目录的理解 和 在 vue 中使用json-server
    发论文的一些常见问题
    latex初步入门:springer llncs
    docker tomcat8 mysql8部署常见错误
    docker快速部署本地项目到服务器(tomcat8+mysql8)
    IDEA构建spring项目
    [b0042] python 归纳 (二七)_gui_tkinter_基本使用
    [b0038] python 归纳 (二三)_多进程数据共享和同步_队列Queue
    springboot进入html
    HbaseShell启动
  • 原文地址:https://www.cnblogs.com/findumars/p/8447841.html
Copyright © 2011-2022 走看看