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
美国高防服务器提速啦专业提供美国高防服务器,美国高防服务器租用,美国抗攻击服务器,高防御美国服务器租用等。我们的海外高防服务器带给您坚不可摧的DDoS防护,保障您的业务不受攻击影响。HostEase美国高防服务器位于加州和洛杉矶数据中心,均为国内访问速度最快最稳定的美国抗攻击机房,带给您快速的访问体验。我们的高防服务器配有最高层级的DDoS防护系统,每款抗攻击服务器均拥有免费DDoS防护额度,让您...
我们在选择虚拟主机和云服务器的时候,是不是经常有看到有的线路是BGP线路,比如前几天有看到服务商有国际BGP线路和国内BGP线路。这个BGP线路和其他服务线路有什么不同呢?所谓的BGP线路机房,就是在不同的运营商之间通过技术手段时间各个网络的兼容速度最佳,但是IP地址还是一个。正常情况下,我们看到的某个服务商提供的IP地址,在电信和联通移动速度是不同的,有的电信速度不错,有的是移动速度好。但是如果...
野草云服务器怎么样?野草云是一家成立了9年的国人主机商家,隶属于香港 LucidaCloud Limited (HongKong Registration No. 2736053 / 香港網上查冊中心)。目前,野草云主要销售香港、美国的VPS、虚拟主机及独立服务器等产品,本站也给大家分享过多次他家的优惠了,目前商家开启了优惠活动,香港/美国洛杉矶CN2+BGP云服务器,1核1G仅38元/月起!点击...