编译、安装boost(on Windows and Solaris)
大卫注:这是当初研究boost时的笔记,最近看到论坛上有人问,所以就贴出来共享一下。其实个人认为,boost目前还不适于进行应用开发,毕竟boost库太大了(当然,你可以只用一部分,但程序的可维护性始终是个问题),除非你想一探C++研究前沿的Meta Programming这个Generic Programming的神奇世界。强烈建议boost的研究者在研究boost之前研究一下一个小得多的模板库loki,boost中的很多让你无法理解的技术在loki库中被大量运用,并且这个库的作者专门写了Modern C++ Design来解说该库的实现。此外,如果你要研究boost,开始时不要编译所有的库,如Python,thread,test等,因为等你花几个小时编译完了,你可能发现,你根本就用不到这些库,或者对它根本就不感兴趣,等到你研究完比较小的几个库,对boost有了充分了解的时候再来编译也不迟。
注:
1、开始前请确认你的OS中已经安装了适当的编译器,以下Windows环境中以Windows 2000 + VC6为例,Unix环境中以Solaris 9 + GCC 3.4.2为例;
2、以下以$BOOSTDIR表示boost的存放目录,请自行根据实际情况进行修改。
O、下载 + 解包(略)
一、编译jam
1.Windows
到$BOOSTDIR/tools/build/jam_src下执行build.bat对jam进行编译,编译结果将存放在$BOOSTDIR/tools/build/jam_src/bin.ntx86下。如果你在执行该批处理程序过程中遇到问题,如报告无法找到编译器相关程序,请执行
X:/Program Files/Microsoft Visual Studio/VC98/Bin/VCVARS32.bat
以建立VC的基本环境变量。
2.Solaris 9
到$BOOSTDIR/tools/build/jam_src下执行./build.sh对jam进行编译,编译结果将存放在$BOOSTDIR/tools/build/jam_src/bin.solarisx86下。
二、设置环境变量
(注:这一步其实可以省略,直接在(三)中通过-s输入到命令行即可,但设置可以让命令行更清晰、简单一点。)
1.Windows
我的电脑点右键->属性->高级->环境变量->user variable或system variable中:
PATH最后添加bjam存放目录,如:
$BOOSTDIR/tools/build/jam_src/bin.ntx86
新建环境变量MSVCDIR,并在变量值一栏中填入VC安装目录,如:
X:/Program Files/Microsoft Visual Studio/VC98
新建环境变量:
PYTHON_ROOT=X:/Program Files/Python2.3.4
PYTHON_VERSION=2.3
2.Solaris 9
在.profile中PATH后添加编译后的jam的存放目录。
并增加
PYTHON_VERSION=2.3
export PYTHON_VERSION
注意,无需设置PYTHON_ROOT,Solaris下jam会自动处理。
三、编译
1.Windows
到$BOOSTDIR下执行以下命令:
jam -sBOOST_ROOT=. -sTOOLS=msvc "-sBUILD=debug release <runtime-link>static/dynamic"
以上命令解释如下:
-s即set,设置环境变量;
BOOST_ROOTboost的存放目录
TOOLS你选择的toolset,如gcc、msvc(即vc6)、vc7.1,此外还有gcc-stlport、msvc-stlport、vc7.1-stlport,表示同时使用stlport。具体支持何种toolset,大家可以自行到$BOOSTDIR/tools/build/v1看个究竟。
BUILD编译类型,上述选项表示编译出支持static和dynamic链接的debug和release版本(4个版本)。
编译后的lib、dll将被copy到$BOOSTDIR/bin/boost/libs目录下,但是这些lib、dll分散在不同的目录下,为了便于使用,可以在上述目录下分别查找*.lib和*.dll找出这些文件,然后将他们分别全部copy到VC的lib目录和Windows的System32目录,也可以自己建立一个专门用于存放boost的lib文件的目录,然后
依次选择Tools->Options->Directories->Library files,将上述目录路径添加到VC的环境设置中。
2.Solaris 9
到$BOOSTDIR下执行以下命令:
jam -sBOOST_ROOT=. -sTOOLS=gcc "-sBUILD=debug release <runtime-link>static/dynamic"
但建议用如下命令:
jam -sBOOST_ROOT=. -sTOOLS=gcc "-sBUILD=release <runtime-link>dynamic <optimization>speed"
这样可以极大加快编译的速度,同时,个人认为像boost这样大的库,最好还是采用动态链接以减小目标程序的size,就像libstdc++,还没有见过有人去静态链接libstdc++.a,虽然系统中提供了这个静态库。
分享到:
相关推荐
Windows和Solaris上Boost安装和编译方法
在CentOS7虚拟机环境下编译的boost 1.69版本的静态库和动态库,经过测试,编译的库能够正常使用
boost windows编译好的版本,可以直接使用
boost编译
个人编译的boost1.49库,MinGW4.5,Release
用VC编译boost库 boost库编译 boost库
qt3,opencv,boost在windows平台上编译安装的技术资料
windows下编译好的boost1.57版本库,可以放心配置使用。
编译好的完整boost库,在vs2015下编译,boost版本为1.5.7
boost1.6 windows 安装版本, 直接安装,无需自己编译
编译boost静态库 boost 1.58版本资源
Boost库是为C++语言标准库提供扩展的一些C++程序库的总称,由Boost社区组织开发、维护。Boost库可以与C++标准库完美共同工作,并且为其提供扩展功能。
mysql5.7.23源码编译包带boost,社区版,官网下载的。
windows 下vs2010编译的boost静态库文件和头文件,可直接在vs工程中引用。
Linux系统下使用gcc 5.3编译器编译的boost库1.68版本的动态库和静态库,多线程参数编译,经测试可用
具体的使用跟网上mpir的编译之后的操作方法类似:参考http://www.exploringbinary.com/how-to-install-and-run-gmp-on-windows-using-mpir/ (How to Install and Run GMP on Windows Using MPIR; By Rick Regan ...
boost1.6 32位 windows 安装版本 不用编译,直接安装使用
作者本人编译环境: windows 10 平台工具集:visual studio 2019 v142 注:!!!此处只有平台工具集相同才可以使用
环境: 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 完全支持 。 全部编译是很痛苦的过程