`
godlovesdog
  • 浏览: 100213 次
社区版块
存档分类
最新评论

Linux编译安装boost1.48

阅读更多
1.下载站:
http://sourceforge.net/projects/boost/files/boost/1.48.0/
2.安装
tar -xzvf boost_1_48_0.tar.g -C ~/source
cd source/boost_1_48_0/
./bootstrap.sh
sudo ./bjam  --layout=versioned --build-type=complete --toolset=gcc install

3.设置环境变量
        在/etc/profile.d新建可执行文件boost.sh,添加文件内容:
#!/bin/sh
BOOST_INCLUDE=/usr/local/include/boost 
BOOST_LIB=/usr/local/lib
export BOOST_INCLUDE BOOST_LIB 

命令行执行:source /etc/profile.d/boost.sh
        以后在编译程序时,只需要用:-I$BOOST_INCLUDE -L$BOOST_LIB 即可,还要使用-l指定了链接库。
4.设置共享库链接目录
/etc/ld.so.conf文件内容后面追加/usr/local/lib
命令行执行
sudo ldconfig

5.遇到的问题及解决方案
安装过程爆出很多和bz相关的错误,解决方案如下
sudo apt-get install libbz2-dev

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....

6.测试
#include <boost/python.hpp> 
char const* greet()
{
   return "hello, world";
}

BOOST_PYTHON_MODULE(hello)
{
    using namespace boost::python;
    def("greet", greet);
}

把代码存为hello.cpp, 编译成so库
g++ hello.cpp -o hello.so -shared -I/usr/include/python2.6 -I /usr/lib/python2.6/config/ -lboost_python

此处python路径设为你的python路径, 并且必须加-lboost_python, 这个库名不一定是这个, 去/user/local/lib查
然后在有此so库的目录, 进入python, 可以如下使用
>>> import hello
>>> hello.greet()
'hello, world'

7.测试遇到问题及解决方案
如果遇到问题:
/usr/bin/ld: cannot find -lboost_python
collect2: ld returned 1 exit status

解决方案:
  • 确认/etc/ld.so.conf.d/相关配置文件已包含boost_python.so所在目录
  • boost_python库所在目录(默认安装在/usr/local/lib)存在libboost_python.so,若不存在则从libboost_python.so.***建软链接到libboost_python.so
分享到:
评论

相关推荐

    boost库1.68版本Linux下编译的动态库和静态库

    确保已经安装了`build-essential`软件包,它包含了编译Boost所需的必要工具。 3. **配置Boost**:进入Boost源码目录,运行`./bootstrap.sh`脚本来初始化构建系统。在配置阶段,可以指定编译选项,例如编译为动态库...

    Linux平台下编译安装使用的boost1.83.0版本压缩包

    在Linux环境下,安装和编译Boost库是开发C++项目时的重要步骤,尤其是当你需要利用Boost提供的高级特性,如多线程支持、日期时间处理、正则表达式、智能指针等时。以下将详细介绍如何在Linux平台上编译和安装Boost...

    Linux boost库安装、编译问题小记

    环境: Linux s12084 2.6.9-67.ELsmp #1 SMP Wed Nov 7 13:58:04 EST 2007 i686 i686 i386 GNU/Linux...在windows 平台, linux 平台下编译都很顺利。hp aCC 也宣称对 boost 1.35 完全支持 。  全部编译是很痛苦的过程

    CentOS7环境下编译的boost 1.69静态库和动态库

    在CentOS7操作系统中编译Boost 1.69,你需要确保系统已经安装了必要的依赖项,如GCC编译器、Bison、Flex等。可以通过运行以下命令来安装这些依赖: ```bash sudo yum install gcc-c++ bison flex ``` 接下来,从...

    Linux下boost库的安装

    安装Boost库在Linux系统中可以通过源码编译和使用包管理器安装两种方式完成,但是由于版本兼容性以及特定功能需求,直接从源码编译安装往往可以提供更好的灵活性和控制度。 在描述中提到的Ubuntu 12.04 32bit系统和...

    Linux编译wireshark3.0.1.doc

    在linux64位操作系统下编译通过最新版wireshark3.0.1源码,保证编译绝对通过!

    centOS 安装boost1.68.0库

    在编译之前,建议先确认一下编译目标和安装路径,默认情况下,Boost库会被安装到`/usr/local/`目录下。你可以通过如下命令编译Boost库: ``` ./b2 ``` 如果你希望直接安装Boost库而跳过编译过程,可以使用以下命令:...

    Windows和Solaris上Boost安装和编译

    以下是对Boost在Windows和Solaris平台上安装和编译的详细过程。 **Windows上的Boost安装和编译** 1. **下载Boost**: 首先,你需要访问Boost官方网站(https://www.boost.org/)下载最新的源代码包。下载完成后,...

    Linux+boost+python3+gcc编译说明文档1

    通过以上步骤,你已经成功地在Linux环境下配置了Python3和Boost,并编译了Boost.Python3库。现在你可以使用这些库来编写C++程序,利用Boost.Python3实现C++和Python之间的无缝交互。在你的C++代码中,包含必要的...

    linux内核编译原理

    linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核...

    speex库 Linux编译方法

    总之,编译speex库在Linux上是一项相对简单的过程,只需要遵循正确的步骤,确保所有依赖项都已安装,并按照配置、编译和安装的顺序进行操作。完成这些步骤后,你就可以在你的项目中充分利用speex库提供的高质量语音...

    CGAL官方安装+个人安装经验总结

    作者最初安装的是这一组合,随后对更新的版本进行了测试,包括Boost 1.48、CGAL 3.9和QT 4.7.4等。本指南将提供这些工具的官方下载地址,并详细说明安装过程中的注意事项。 #### 二、下载资源 - **Boost**: 下载...

    编译boost静态库 boost 1.58版本资源

    这里,`/path/to/install/directory`是你希望安装Boost库的位置,`--with-XXX`替换为你要编译的Boost组件(例如`--with-thread`,`--with-regex`等),`link=static`表示编译静态库,`threading=multi`指定为多线程...

    boost编译资料命令

    ### Boost编译资料命令解析 Boost是一个开源的C++库集合,它提供了许多有用的模板类和函数,可以显著提高开发效率。在实际项目中,为了能够有效地利用Boost库的功能,通常需要对其进行编译以适应不同的操作系统、...

    boost centos7编译好的完成版本可以直接引入使用

    在CentOS7系统上,Boost库的编译和安装对于开发者来说是一项重要的工作,因为这能够使他们直接利用这些库的功能,而无需自己从源代码开始编译。本压缩包提供的"boost_1_68_0"版本,是Boost库的一个稳定版本,已经...

    boost_1_78_0编译及使用

    1. **设置环境**: 在编译Boost之前,确保你的系统上已经安装了C++编译器,如GCC或Clang。你也需要一个构建系统,比如Bjam或现代的B2(Boost.Build的一部分)。 2. **配置Boost**: 进入`boost_1_78_0`目录,你可以...

    GDAL在Linux下的编译实现

    GDAL 在 Linux 下的编译实现需要经过安装、编译和调用三个步骤。首先,需要安装 GDAL,然后编译 GDAL,最后调用 GDAL。整个过程需要使用到多种工具和命令,如 apt-get、./configure、make 和 make install 等。

    Linux编译安装ffmpeg

    Linux编译安装ffmpeg,包括ffmpeg-4.3.1.tar,nasm-2.13.03.tar.bz2,x264-snapshot-20191217-2245-stable.tar.bz2和yasm-1.3.0.tar.gz

Global site tag (gtag.js) - Google Analytics