Boost 安装详解
一 Linux(redhat)篇
1.1 获取boost库
解压
tar -zxvf boost_1.48.0.tar.gz
进入解压目录
cd boost_1_48_0
1.2 编译安装
使用下面的命令创建boost自己的编译工具bjam(目的是保证Boost在任何平台上都能用bjam编译),类似于GNU Make。
./bootstrap.sh --prefix=/home/usrname/boost_1_43_0/boost_install
boost将被安装到/boost_install目录下,不知名prefix将默认安装到/usr/local/include和/usr/local/lib下。
建议先查看下帮助文档,了解些默认选项,命令为
./bjam –help
.bjam命令的格式为:bjam [options] [properties] [targets]
常用选项(Options)和属性(Properties)的说明,一般带有–前缀的关键词为option,没有的则为property。
–show-libraries
显示需要编译才能使用的库列表
–build-type=minimal|complete
–build-type=minimal为默认值,此时在Linux下只编译生成release版的动态链接C运行库(C++标准库)的多线程静态库和动态库。
–build-type=complete,在Unix/linux下要编译多个变体(debug或release,多线程或单线程,静态库或动态库,静态链接或动态链接C运行库/C++标准库)。不建议全部编译,费时还费空间,提倡按需编译。
–layout=versioned|tagged|system
决定需要编译的库名及头文件的地址目录名的生成策略。默认Windows下–layout=versioned,Linux下–layout=system。
当同时编译多个版本时,最好设置–layout=versioned或–layout=tagged,否则编译多半会失败,原因是有的版本同时编译若不指定命名策略,可能在输出到指定目录的时候造成命名冲突。
注:–build-type=complete时,不需要设置此属性。但指定variant=debug,release等属性时,须确保–layout=versioned或–layout=tagged。
–build-dir=DIR
指定存放编译过程中生成的中间文件,目标文件等其他文件的目录,默认在./bin.v2。
–with-
创建和安装指定的库
–without-
不对指定的库进行创建和安装,默认创建所有的库
安装:关键词 install 或 stage
./bjam install
install会安装头文件和库文件到相应指定目录,头文件安装到/usr/local/include下,库文件安装到/usr/local/lib下。具体指定安装目录见./bjam –help。
./bjam stage
stage说起来只能说是收集生成的库文件到一个目录下,通常默认就在./stage下。
注:
install 和 stage 貌似不能同时使用,中间会卡住。
若编译过程中未指定install或stage,则生成的目标库文件只存在于–build-dir所指的目录中,默认为./bin.v2。考虑到此,若无需将头文件和库文件安装,则推荐使用stage关键字。
下面是属性:
toolset=toolset
指定编译器,默认自动检测,安装了多个编译器的时候可以使用此属性。
variant=debug|release
指定编译debug或release版本。
link=static|shared
指定创建静态库或动态库
runtime-link=static|shared
指定创建的库是静态链接还是动态链接到C运行库(或C++标准库),这个选项需依据–link的类型,不同的编译器允许的链接策略不一样,比如在GCC下,在生成动态库(–link=shared)时,就不允许进行静态链接到C运行库(或C++标准库)。
threading=single|multi
指定创建多线程或单线程的版本库。
属性可同时设置,如下两种方式,为了避免名字冲突,建议采取propery=value的格式:
./bjam variant=debug,release stage
或
./bjam variant=debug variant=release
这两种方式都可以。
最后执行的创建命令:
./bjam --with-filesystem --layout=tagged variant=release link=static threading=single stage
另一种最终创建命令:
./bjam -a -sHAVE_ICU=1 --without-python --without-mpi --without-math --without-graph --layout=tagged variant=debug,release link=static runtime-link=shared threading=multi stage
1.3 补充说明
#-a参数,代表重新编译,-sHAVE_ICU=1代表支持Unicode/ICU
Boost 安装详解的更多相关文章
- Linux ssh登录和软件安装详解
阿哲Style Linux第一天 ssh登录和软件安装详解 Linux学习第一天 操作环境: Ubuntu 16.04 Win10系统,使用putty_V0.63 本身学习Linux就是想在服务器 ...
- 【转】Linux下Android ADB驱动安装详解
原文网址:http://blog.csdn.net/zhenwenxian/article/details/5901350 Linux下Android ADB驱动安装详解 概述 最近由于内置的合作商比 ...
- scribefire 多博客管理利器 安装详解
scribefire 多博客管理利器 安装详解 一.ScribeFire介绍 ScribeFire 是 Firefox (火狐浏览器)上著名的博客写作工具,目前已跨平台支持多浏览器(Firefox,C ...
- CentOS 6.5的安装详解
CentOS 6.5的安装详解 主流: 目前的Linux操作系统主要应用于生产环境, 主流企业级Linux系统仍旧是RedHat或者CentOS 免费: RedHat 和CentOS差别不大,Cent ...
- Linux下tomcat的安装详解
Linux下tomcat的安装详解 来源: ChinaUnix博客 日期: 2007.01.21 22:59 (共有0条评论) 我要评论 一,安装前的准备:1,Linux版本:我的是企业版.(至于红帽 ...
- Phoenix和SQuirrel安装详解
Phoenix安装详解 描述 现有hbase的查询工具有很多如:Hive,Tez,Impala,Shark/Spark,Phoenix等.今天的主角是Phoenix. phoenix,中文译为“凤凰” ...
- zabbix agent安装详解
安装 Installing repository configuration package Zabbix 2.2 for RHEL5, Oracle Linux 5, CentOS 5: rpm - ...
- zabbix server安装详解
简介 zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以 ...
- Oracle Database 12c Release 2安装详解
第1章 Oracle Database 12c Release 2安装详解 1.1 下载方法 oracle官网https://www.oracle.com 1)打开官方网站,找到下载连接 2)选择更多 ...
随机推荐
- 关于.NET中的Session
Asp.net 默认配置下,Session莫名丢失的原因及解决办法正常操作情况下Session会无故丢失.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成6 ...
- Jenkins修改端口号(windows系统)
windows下改端口号: Jenkins安装成功后,默认的端口为8080. 如果该端口号与其他服务的端口号冲突,则需要更改Jenkins的端口号. 具体方法为: 修改Jenkins安装目录下的 je ...
- 密码生成工具Cupp
Cupp可根据已知信息生成相应的字典,用来爆破很有帮助 首先先安装一下cupp 命令:apt-get install cupp 参数说明: -v查看cupp版本号 -h 查看参数列表 -l 从gith ...
- windows Server 2008各版本有何区别?
windows Server 2008有几个版本,先一一列出来把: Windows Server 2008 Standard Edition (标准版) Windows Server 2008 ...
- 【整理】Android中的gravity和layout_gravity区别
[背景] 在Android中,想要设置个按钮的水平对齐,都累死了: [已解决]ADT中已设置TableLayout布局的情况下如何设置按钮居中对齐 所以现在有必要搞清楚,到底gravity和la ...
- Directshow 采集音视频数据H264+AAC+rtmp效果还不错
从usb摄像头或者采集卡中采集效果还是不错的.
- Python基础学习七 Excel操作
python操作excel,python操作excel使用xlrd.xlwt和xlutils模块, xlrd模块是读取excel的,xlwt模块是写excel的,xlutils是用来修改excel的. ...
- 关于python3 发送邮件
一:发送文本信息 from email.mime.text import MIMEText from email.header import Header from smtplib import SM ...
- <转>Linux环境进程间通信--信号灯(四)
http://www.ibm.com/developerworks/cn/linux/l-ipc/part4/ 一.信号灯概述 信号灯与其他进程间通信方式不大相同,它主要提供对进程间共享资源访问控制机 ...
- java通过反射了解集合泛型的本质