编译C 的boost库的编译安装

boost库  时间:2021-01-26  阅读:()

I C U编译VS2010

ICU提供了 unicode 和国际化支持 目前的版本是4.8.1 。 ICU 的主页是http://www. icu-p roject.org/。

(1).下载

可以从http://sourceforge.net/projects/icu/fi les/下载源代码版本。 4.8.1是VS2010的 4.4.2才是VS2008的如果是2010要做转换。

(2).编译

ICU的编译比较简单打开ICU源代码目录下的source\al l inone\al linone.sln需要转换到VS2008格式直接转换即可。然后选择release Rebui ld Solution即可。

(3).测试

将编译出来的bin 目录加入到系统的PATH目录中去。然后重新打开al l inone.sln工程。需要通过测试的项目

1 .cintltst项目

2. intltest项目

3. iotest

分别设置成启动项目运行即可。

2.b zi pbzi p的主页是http://www.b zi p.o rg/从http://www.b zi p.o rg/d own load s.html下面下载源代码包即可 boost直接使用源代码来进行编译。

3.zl i bzl ib的主页是http://www.zl ib.net/ http://sourceforge.net/projects/gnuwin32/fi les/zl ib/从该网页下面下载源代码包即可 boost直接使用源代码来进行编译。

4.pythonpython的主页是http://www.python.org/下载python的2.5.2版本安装即可。 boost默认是会编译python并且会自动寻找python的安装目录。

ICU编译MinGW

还未成功编译

第一步到官网www.boost.o rg下载boost最新版boost_1_47_0.zip

第二步将boo st压缩包解压到C盘根目录下(在C盘操作简单不会出错) 目录为C:\BOOST_1_47_0,里面就是boost的源码和需要编译的文件及文档资料第三步用打开一个cmd命令窗口在C:\Program Files\Microsoft Visual Studio

10.0\VC\b i n目录下找到VCVA RS 32.b at拖到c m d命令窗口按回车

第四步将cmd中的目录跳转到C:/boost_1_47_0/tools/build/v2下,拖动bootstrap.bat 批处理文件到 cmd,  按回车键,随即就会在

C:/boost_1_47_0/tools/build/v2下生产一个bjam.exe和b2.exe。

第五步:将bjam.exe复制或移动到boost的根目录下 即C:/boost_1_47_0下面。

第六步将cmd命令中的目录跳到boost的根目录下然后输入bjam--toolset=msvc-10.0--build-type=complete stage回车等待20多分钟编译就完成了

注意整个操作过程中cmd命令窗口必须保证是开始打开的那个

附1 cmd 目录跳转指令举例例如跳到d盘下的一个名为test的目录下则输入cd d:\test按回车。

附 2 最终生成的我们所需的文件在C:\boost_1_47_0\bin.v2\libs和

C:\b o o st_1_47_0\st ag e\l i b当中, b i n.v 2和st ag e目录及它们的子目录都是编译时自动创建的为了使用方便建议做以下处理

在bin.v2和stage目录下分别搜索后缀名为.dl l和.lib的文件然后就它们移动到一个新建目录下 比如boost_files文件夹下

然后在vc2010的工程目录下include项中包含C:\boost_1_47_0\bin.v2\libs,在lib目录下包含boost_files目录自己最后保存编译的dl l和lib文件的目录使用时要在工程中包含相应的头文件。

最后申明我是亲手实验每一步的过程所得结果 因为编译器版本和操作的原因如您不能正常编译请仔细检查原因或与给我留言。

其他版本也可用类似的方法进行编译

1.至http://www.boost.org/users/history/version_1_48_0.html下载boost最新版

1.48.0;

2.解压缩后运行bootstrap.bat批处理文件得到bjam.exe;

3.进入VS2008的Command Prompt 方法Tools->Visual Studio 2008 Command Prompt转到boost 目录。 例如我的boost 目录:D:\boost_1_48_0

4.输入“bjam--toolset=msvc-9.0--build-type=complete stage”后等待约1小时完成编译。编译成的lib文件放在stage\lib下形如

“libboost_program_options-vc90-sgd-1_48. lib” .

备注对于一般使用可以选择编译boost库毕竟完整编译需要时间还是比较长的 例如我一般编译如下几个boost常用库system, thread, date_time, filesystem,serialization则相应的bjam命令如下bjam --toolset=msvc-9.0 architecture=x86 address-model=64 --with-system--with-thread --with-date_time --with-filesystem --with-serialization

其中 msvc-9.0代表编译成VC9.0即VS2008版本对应的msvc-10.0代表编译成VC10.0即VS2010版本 address-model=64代表编译成64位版本如省略此项默认为编译成32位版本。

【原】 Boost下载安装编译配置使用指南含Windows和Linux

——更新于201 1/7/19 目前我已对boost的安装和使用有了新的认识因此也会对两年前写的这篇文章做大幅修改 网上转载版本泛滥请以本文为准。

理论上本文适用于boost的各个版本尤其是最新版本1 .47.0适用于各种C++编译器如VC6.0 部分库不支持  VS2003 VS2005 VS2008 VS2010 gcc C++Bui lder等。先总结一下Windows系统。

一、下载

首先从boost官方主页http://www.boost.org/下载最新版boost安装包或者使用Su bversion获取最新版本地址是 http://svn.boost.org/svn/boost/tru n k。本人现在一般都用svn这样可以很方便的进行update和bui ld而不是每次都下载新的安装包并rebui ld。

二、安装

如果是使用下载的安装包那么请将boost安装包解压至本地目录如 E:\SDK\boost如果是用svn的也可以将boost的代码checkout到这个目录。因为boost一部分类是需要编译成库才能使用的所以我们还需要准备好boost专用的编译辅助工具bjam。在命令提示符cmd.exe中执行根目录下的bootstrap.bat编译后的bjam.exe会自动拷贝到该目录下bjam必须与boost-bui ld.jam在同级目录 。

三、编译

接下来就是最重要的编译步骤了。需要打开命令提示符cmd.exe窗口并执行bjam可以使用--help参数来查看命令帮助。这里详细讲解一下bjam的命令行参数 因为它非常重要。首先它涉及到编程环境的搭建你需要根据自己今后具体的使用环境来选择合适的命令行参数其次它影响到你的硬盘空间完全编译的话据说在3G以上如果你同时拥有2个以上的IDE 如VC6和VC9共存而且都要用到boost那么占用多少硬盘就自己算吧„„虽说如今大家的硬盘空间都不成问题但就像本人一样崇尚合理利用资源不习惯铺张浪费提倡节俭的童鞋应该大有人在所以不需要的配置和不需要的库就可以不编译了。综合以上两点因素本人使用的bj a m命令如下bjam stage--toolset=msvc-9.0--without-graph--without-graph_paral lel --without-math--without-mpi --without-python--without-serial ization--without-wave

--stagedir="E:\SDK\boost\bin\vc9" l ink=static runtime-l ink=shared runtime-l ink=staticthreading=multi debug release

下面详细解释一下每个参数的含义stage/instal l  stage表示只生成库dll和l ib  instal l还会生成包含头文件的include目录。本人推荐使用stage 因为instal l生成的这个include目录实际就是boost安装包解压缩后的boost目录E:\SDK\boost\boost只比include目录多几个非hpp文件都很小 所以可以直接使用而且不同的IDE都可以使用同一套头文件这样既节省编译时间也节省硬盘空间。toolset指定编译器可选的如borland、 gcc、msvc VC6 、msvc-9.0 VS2008等。without/with选择不编译/编译哪些库。因为python、mpi等库我都用不着所以排除之。还有wave、 graph、 math、 regex、 test、 program_options、 serial ization、 signals这几个库编出的静态l ib都非常大所以不需要的也可以without掉。这可以根据各人需要进行选择默认是全部编译。但是需要注意如果选择编译python的话是需要python语言支持的应该到pyth on官方主页h ttp://www.pyth o n.o rg/下载安装。查看boost包含库的命令是bjam--show-l ibraries。stagedir/prefix stage时使用stagedir instal l时使用prefix表示编译生成文件的路径。推荐给不同的IDE指定不同的目录如VS2008对应的是E:\SDK\boost\bin\vc9 VC6对应的是E:\SDK\boost\bin\vc6否则都生成到一个目录下面难以管理。如果使用了instal l参数那么还将生成头文件目录 vc9对应的就是

E:\SDK\boost\bin\vc9\include\boost-1_46\boost,vc6类似光这路径都这样累赘还是使用stage好 。bui ld-dir编译生成的中间文件的路径。这个本人这里没用到默认就在根目录E:\SDK\boost下 目录名为bin.v2等编译完成后可将这个目录全部删除没用了 所以不需要去设置。l i n k生成动态链接库/静态链接库。生成动态链接库需使用sha red方式生成静态链接库需使用static方式。一般boost库可能都是以static方式编译因为最终发布程序带着boost的dl l感觉会比较累赘。runtime-l ink动态/静态链接C/C++运行时库。 同样有shared和static两种方式这样runtime-l ink和l ink一共可以产生4种组合方式各人可以根据自己的需要选择编译。一般l ink只选static的话只需要编译2种组合即可 即l ink=static runtime-l ink=shared和l ink=static runtime-l ink=static本人一般就编这两种组合。

threading单/多线程编译。一般都写多线程程序 当然要指定multi方式了如果需要编写单线程程序那么还需要编译单线程库可以使用single方式。debug/re lease编译debug/release版本。一般都是程序的debug版本对应库的debug版本所以两个都编译。

本人按以上方式分别编译了静态链接和动态链接两个版本后整个E:\SDK\boost目录有

1 .28G。如果不打算将来再升级boost版本那么可以将编译生成的中间文件bin.v2 目录删除这样整个目录包括安装包解压缩文件和编译生成的库文件会减小至不到800MB如果runtime-l ink只选了一种方式那么整个目录只有600MB。事实上编译完成后除了boost和bin 目录之外其他目录和文件已经可以删除了这样还可以腾出350MB的空间来。不过我又研究了一下其实l ibs这个目录也很有用它提供了所有Boost类的使用范例平时可以作为参考 另外doc目录是一个完整的boost使用帮助文档 当然最好也不要删了。其他几个目录和文件加起来也就几十兆索性都给它们留一条生路吧。

呵呵一个完整而又完美的boost目录就此诞生了。

需要注意的是如果使用VS2008编译boost其他版本VC未作测试可能也有类似问题那么假如你调用boost的主程序添加了_BIND_TO_CURRENT_VCLIBS_VERSION预定义宏来强制使用最新版本的Windows CRT库那么你的boost也需要添加这个预定义宏来进行编译否则会导致程序因为各模块使用的C RT库版本不统一而出现“在某些机器上运行提示‘由于应用程序配置不正确应用程序未能启动’的问题” 关于该问题请参考我的另外一篇文章 【原】解决VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确应用程序未能启动”的问题。添加该预定义宏的方法是打开boost安装根目录下的boost\config\compi ler\visualc.hpp在最上面增加

//Added by terry,2011/4/19,Force the l inkerto use the latest version of CRT/MFC/ATL dl l#ifndef_BIND_TO_CURRENT_VCLIBS_VERSION

#define_BIND_TO_CURRENT_VCLIBS_VERSION 1

#endif//_BIND_TO_CURRENT_VCLIBS_VERSION

这种方法修改了boost的源码并非我所愿 但是无奈没有找到更好的方法如果有人知道希望能够留言告诉我。

如果图省事不想了解这么多那么有简单的方法可以使用命令bjam--too lse t=msv c-9.0--bu i ld-type=comp lete

直接指定编译器以完全模式编译即可这样可以满足今后的一切使用场合但同时带来的后果是

1 、 占用3G以上的硬盘空间

2、 占用若干小时的编译时间

3、头文件和库文件存放于C:\Boost 本人非常反感

4、生成的很多文件可以永远也用不上

四、配置include目录 E:\SDK\boostl ibrary目录 E:\SDK\boost\bin\vc9\l ib

添加到IDE相应的路径下面即可。

五、使用

使用举例

#include<boost\thread.hpp>

此时不用包含库文件 boost的auto-l ink机制将会自动帮我们包含对应的静态l ib。也就是说 boost默认是以静态方式链接的这样我们的工程属性最好也设为Multi-threaded(Debug)。如果想使用dl l动态方式链接需要预先定义宏

#define BOOST_ALL_DYN_LINK

同样此时boost也会默认帮我们包含对应的l ib。如果不想使用boost提供的auto-l ink机制或者对它的自动链接不太放心的话其实大可不必担心 可以预先定义宏#define BOOST_ALL_NO_LIB

然后使用以下方法链接

#pragma comment(l ib, "boost_thread-vc90-mt-1_47. l ib")

#pragma comment(l ib, "boost_thread-vc90-mt. l ib")

这两个l ib其实是一样的实在不明白boost编译时为什么每个库都要复制一份难道是因为后者在升级boost版本后不用改代码另外还有一个比较有用的宏

#define BOOST_LIB_DIAGNOSTIC

它可以让VC在编译时的output窗口中输出程序具体链接了哪些boost库以及链接顺序。关于boost的auto-l ink机制详细可以看看boost\config\auto_l ink.hpp里的代码很容易可以读懂并且值得我们学习。

六、 Lin ux下编译与配置的区别

我的Linux与Windows使用了共享目录将Windows下的E:\SDK目录映射成了Linux下的/mnt/hgfs/sdk目录。

所以我的boost源文件根目录就是/mnt/hgfs/sdk/boost cd进去。

首先需要编译bj a m

./bootstrap.sh

编译完成后会在当前目录下生成bjam接下来开始编译boost

./bjam stage--toolset=gcc--with-date_time--with-thread--with-fi lesystem

--with-program_options--stagedir="/mnt/hgfs/sdk/boost/bin/gcc" l ink=staticruntime-l ink=static threading=multi debug release

这些参数的意义与Windows下完全一样只不过编译器改成gcc其他选项根据自己的需要进行设置。

生成的库文件就在bin/gcc/l ib目录下与vc9编译的一样。

如果将来不会再升级boost版本那么可以把中间文件全部删掉包括bin.v2 目录和tools/jam/stage 目录。

关于boost库的使用为了不用每次写makefi le都把boost的头文件和库文件的路径带着而且为了让跨平台程序公用一套代码

可以将boost的头文件和库文件路径加到Linux的环境变量中。打开/etc/profi le加入以下gcc环境变量

CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:"/mnt/hgfs/sdk/boost"export CPLUS_INCLUDE_PATH

LIBRARY_PAT H=$L IBRARY_PAT H:"/mnt/hgfs/sdk/boost/bin/gcc/l ib"export LIBRARY_PAT H

这样就可以直接使用boost的头文件和库文件了并且与Windows共用一套代码非常方便。

--本文来源于创世软件团队博客,原文地址:http://www.cnblogs.com/wondering/archive/2009/05/21/boost_setup.html

==================================重点提示

=======================================

编译bjam stage --toolset=gcc

(这里将编译所有的库如果不想编译Python库可以添加选项

--without-python)

安装到一个指定的目录 比如myboostbjam install --toolset=gcc --prefix=. ./myboost

青果云(590元/年),美国vps洛杉矶CN2 GIA主机测评 1核1G 10M

青果网络QG.NET定位为高效多云管理服务商,已拥有工信部颁发的全网云计算/CDN/IDC/ISP/IP-VPN等多项资质,是CNNIC/APNIC联盟的成员之一,2019年荣获国家高薪技术企业、福建省省级高新技术企业双项荣誉。那么青果网络作为国内主流的IDC厂商之一,那么其旗下美国洛杉矶CN2 GIA线路云服务器到底怎么样?官方网站:https://www.qg.net/CPU内存系统盘流量宽带...

SugarHosts糖果主机六折 云服务器五折

也有在上个月介绍到糖果主机商12周年的促销活动,我有看到不少的朋友还是选择他们家的香港虚拟主机和美国虚拟主机比较多,同时有一个网友有联系到推荐入门的个人网站主机,最后建议他选择糖果主机的迷你主机方案,适合单个站点的。这次商家又推出所谓的秋季活动促销,这里一并整理看看这个服务商在秋季活动中有哪些值得选择的主机方案,比如虚拟主机最低可以享受六折,云服务器可以享受五折优惠。 官网地址:糖果主机秋季活动促...

cera:秋季美国便宜VPS促销,低至24/月起,多款VPS配置,自带免费Windows

介绍:819云怎么样?819云创办于2019,由一家从2017年开始从业的idc行业商家创办,主要从事云服务器,和物理机器819云—-带来了9月最新的秋季便宜vps促销活动,一共4款便宜vps,从2~32G内存,支持Windows系统,…高速建站的美国vps位于洛杉矶cera机房,服务器接入1Gbps带宽,采用魔方管理系统,适合新手玩耍!官方网站:https://www.8...

boost库为你推荐
月付百万的女人们男人们谈谈,和多大年龄的女人做爱最舒服浏览器哪个好浏览器哪个好 主流浏览器对比分析莫代尔和纯棉哪个好纯棉含莫代尔和100%莫代尔哪个好手动挡和自动挡哪个好自动挡手动挡哪个好?手机杀毒哪个好手机杀毒软件哪个好股票软件哪个好请问:免费的模拟炒股软件哪个好?海克斯皮肤哪个好联盟海克斯科技和抽皮肤哪个合适红茶和绿茶哪个好红茶和绿茶哪个更好?视频软件哪个好手机看视频用什么软件好qq空间登录界面怎样进入自己qq空间
vps是什么意思 域名解析文件 已经备案域名 高防dns 日本软银 踢楼 diahosting 精品网 免备案cdn mediafire下载 轻博客 火车票抢票攻略 北京主机 小米数据库 韩国名字大全 美国堪萨斯 umax120 支持外链的相册 华为云服务登录 360云服务 更多