转载自:http://blog.csdn.net/livelylittlefish/archive/2010/12/24/6095658.aspx
Linux平台Boost的编译方法
Boost的编译使用的不是已经成为公认标准的make,而是专门为Boost开发的工具bjam(boost jam)。
本文以boost1.40为例,在Linux平台的编程环境为gcc4.4.1,假设Boost代码在/usr/src/boost_1_40_0目录,步骤如下。
1. 获得bjam
获得bjam有3种方式,如下:
方法1:Boost网站上提供了各种平台上预编译好的bjam可执行程序,可直接下载使用。
方法2:从Boost源代码中提供的bjam代码编译出可执行程序。
方法3:通过bootstrap程序生成bjam。
方法1:
# apt-get install bjam
方法2:
(1) # cd /usr/src/boost_1_40_0/tools/jam/src
(2) # ./build.sh
编译完成后:
生成的可执行文件为
# /usr/src/boost_1_40_0/tools/jam/src/bin.linuxx86/bjam
需要将bjam.exe拷贝到源代码所在的目录
# cp bin.linuxx86/bjam /usr/src/boost_1_40_0
方法3:
(1) # cd /usr/src/boost_1_40_0
(2) # ./bootstrap.sh
该方法直接在Boost源代码目录下生成bjam文件。
2. 修改bjam配置
使用bjam前,需要修改bjam的配置文件。Linux平台的配置文件:
/usr/src/boost_1_40_0/tools/build/v2/user-config.jam
修改如下。注:笔者在实验时,不修改貌似也很正常。
将43行的“# using gcc ;”前的注释符号‘#’去掉,表明用到使用gcc编译。
如果要使用STLport作为其标准库,将75行前的‘#’去掉。
3. 完整编译Boost
对Boost进行完整编译,生成所有调试版、发行版的静态库和动态库。
方法1:
# cd /usr/src
# wget http://sourceforge.net/projects/boost/files/boost/1.40.0/boost_1_40_0.tar.bz2
# tar --bzip2 -xvf boost_1_40_0.tar.bz2
# cd boost_1_40_0
# bjam --toolset=gcc --build-type=complete stage
或
# ./bjam --build-type=complete --layout=versioned
或
# ./bjam
方法2:
# cd /usr/src/boost_1_40_0/tools/jam
# ./build_dist.sh
也会完成Linux平台bjam和Boost的所有编译工作,并生成所有调试版、发行版的静态库和动态库。但不推荐该方式。
编译成功后,将在/usr/src/boost_1_40_0/bin.v2目录下生成诸多文件,包括.a和.so.1.40.0文件,这就是在Linux平台要使用Boost需要的,其他的文件可以删除。
安装
# ./bjam install
将生成的库默认安装到/urs/local/lib目录。
4 部分编译Boost
完整编译Boost费时费力,且这些库在开发过程中并不一定全部用到,因此,bjam也支持用户自行选择要编译的库。
在完全编译的基础上,使用--with或者—without选择可以打开或者关闭某个库的编译,例如,仅仅编译date_time库:
# cd /usr/src/boost_1_40_0
# ./bjam --toolset=msvc --with-date_time --build-type=complete stage
分享到:
相关推荐
Linux系统下使用gcc 5.3编译器编译的boost库1.68版本的动态库和静态库,多线程参数编译,经测试可用
Linux平台下编译安装使用的boost1.83.0版本压缩包
下面小编就为大家带来一篇linux下编译boost.python简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
环境: 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 完全支持 。 全部编译是很痛苦的过程
该资源是带有boost库的mysql,mysql-boost-5.7.20.tar.gz源码包,用于编译安装,安装步骤可以看我之前博客,有详细步骤,用于lnmp环境搭建
在linux下编译boost库
mysql linux通用源码版 需要编译安装
进入官网http://www.boost.org/,选择最新的版本,这里是1.66.0版本 下载完成之后,解压boost的编译将boost_1_66_0.tar
boost的linux静态库版本,添加了-fPIC选项,一般的boost静态库没有此选项,动态库在调用的时候会报下面的内容,用了这个库就不会出了(网上教的编译方法都是针对1.55版本的,后面的版本代码都不一样): /usr/bin/...
1.64.0版本的boost库的源码,Linux平台和Windows平台均可使用,Linux平台编译步骤1:./bootstrap.sh,2:./b2 。Windows平台编译步骤:1: ./bootstrap.bat,2:.\b2.exe
mysql8.0.16.tar.gz,mysql源码包,linux平台源码编译安装,下载mysql源码包,数据库mysql8.0
用于mysql 5.7.27 源码编译,用到依赖包 boost_1_59_0.tar.gz
centos中使用,编译方法可以参考README.md文件中的内容
基于官网的boost.asio的HTTPS/SSL例子,包括server和client端,完整的windows VS编译环境,包含了完整的boost库和openssl库,编译配置测试说明文档,测试用的server.crt和server.key证书文件。如需linux版本,和自己...
基于官网的boost.asio的HTTPS/SSL例子,包括server和client端,完整的Linux编译环境,包含了完整的boost库和openssl库,编译配置测试说明文档,测试用的server.crt和server.key证书文件。如需windows版本,和自己...
《Linux多线程服务端编程:使用muduo C++网络库》主要讲述采用现代C++在x86-64 Linux上编写多线程TCP网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop per thread。...
最近由于编译一个程序用到了C++的boost库,所以便安装了这个库。但是,其中遇到了一些小问题。所以记录下来,以供别人参考。
ace 编译文档,主要讲述如何在windows平台和linux平台下编译ace 库。
boost的1.65.1的源码,可以在Linux平台下,编译为二进制,作为第三方库使用。