Electronic Joint Business

Solution for E-Business

icu

用VC++ 10.0 编译Boost类库

为什么需要 Boost 类库?
原因是 C++ 提供的标准类库功能十分有限,功能大概只相当于 Java 里的 io 和 util 两个包。对于开发现代的应用程序,一个没有提供正则表达式,XML 等等类库的语言是不可想象的。Boost 就是鉴于 C++ 类库功能有限,而提供的一套免费的 C++ 函数库 ,吸收了广大高质量的 C++ 函数库,提供更强大的功能,以方便写出写出更高质量的 C++ 程序,加快程序的开发周期。

对于大部分 Boost 应用来说,它是不用编译的,直接包含头文件就可使用,如:

any
array
asio
conversion
crc
bind/mem_fn
enable_if
function
lambda
mpl
smart_pt

只有少部分需要编译成库文件,需要编译的库如下:

date_time
filesystem
function_types
graph
iostreams
math
mpi
program_options
python
regex
serialization
signals
system
test
thread
wave

要完全编译 Boost 库需要先准备一些第三方库,这里在 C: 盘建立了一个 USR 目录,在下面建立三个子目录 bin,include 和 lib,我们需要将 C:\usr\bin 加入到路径中。编译 Boost 需要三个类库,如下:

  • 1. Regex 所需 Unicode 支持类库 — ICU, 这里选用版本是4.4.6.
    编译 ICU 较为简单,解开 ICU 包之后,在其目录下可以找到一个叫”allinone”的目录,用 Visual studio 2010 打开里面的allinone.sln,分别用debug和release编译,编译之后,将 include 目录和 release 目录下的库文件拷贝出来,dll 拷贝到 C:\usr\bin, 头文件拷贝到 C:\USR\include,库文件则放到 C:\USR\lib.
  • 2. Graph 所需的 Xml 处理类库 — Expat, 最新的版本是2.0.1。expat 提供了vc 6.0的项目文件:expat.dsw,用 Visual studio 2010 打开它,并转化成 2010 的项目文件即可编译。如果想要64位的库文件,请注意在配置管理中,把 platform 改成 x64。
  • 3. 编译 Boost.MPI 所需 MPI 类库 — Boost 的官方站点说需要 MPICH 或 OpenMPI 之类的支持,但是在 Windows 编译环境中总是会提示需要 MPIC++,其实你需要的是Microsoft Cluster Pack SDK,下载并默认安装在 c:\Program Files\Microsoft Compute Cluster Pack 下。当然你也可以用 Microsoft HPC Pack 2008 SDK,效果是一样的。

不过,如果下载的是 Microsoft HPC Pack 2008 SDK,或者 Microsoft Compute ClusterPack 不是装到默认的路径下,那 bjam 就会提示找不到 mpic++ 的路径,这时候需要修改一下 mpi.jam(在tools\build\v2\tools),用 notepad 打开它,找到 “local cluster_pack_path_native” 这行,改成:

>>> 阅读全文

 

, , , , , , ,