用 VC.NET 2003 (VC7.1) 编译 Xerces-c 2.7 和 ICU 3.6.

用 VC.NET 2003 (VC7.1) 编译 Xerces-c 2.7 和 ICU 3.6.

Xerces-c 是Apache的XML项目, 具有良好的跨平台性,但支持的字符集比较少. 内部表达用 UTF-16. 但对于XML文件解析,支持的字符集比较少.
ICU 是IBM 维护的一套稳定成熟、功能强大、轻便易用和跨平台支持Unicode 的开发包.
将 Xerces和ICU结合起来可以实现实现跨平台的支持多国语言的XML解析库. 下面介绍windows下用 VC.NET 2003 (VC7.1) 编译 Xerces-c 2.7 和 ICU 3.6 的过程.

1. 安装 Perl 5.004 或更高版本.

2. 安装 Cygwin tools.
   Cygwin 的缺省安装中不包括zip.exe, 因此在Cygwin 的安装选项中要显式选中 zip 包.

3. 将Perl和Cygwin的bin加入系统路径. 使得在控制台窗口中可以直接访问.
   测试方法, 在控制台窗口中分别输入 perl -version 和 uname, 可以看到有意义的输出.

4. 解压 Xerces-C++ source files到某个目录下.其根路径为 'x:/xerces-c-src2_7_0'.
   解压 ICU 解压后,其根路径为 'x:/icu'

5. 如果你安装了 STLport 来替代VC.NET 2003自带的 STL, 那么必须进行5.1和5.2步.否则
   直接进行第6步. 原因请参考 http://blog.csdn.net/aseity/archive/2007/06/03/1636130.aspx
5.1 找到 x:/icu/source/configure.in 文件中的
   #include <stddef.h>  (3.6版本中,位于 Line 747)
   在这行的前面加上
#if !defined(_STLP_NATIVE_C_HEADER)
#define _STLP_NATIVE_C_HEADER(header) <C://Program Files//Microsoft Visual Studio .NET 2003//Vc7//include//header>
#endif
  
5.2 找到 x:/icu/source/configure 文件中的
   #include <stddef.h>  (3.6版本中,位于 Line 7370)
   在这行的前面也加上
#if !defined(_STLP_NATIVE_C_HEADER)
#define _STLP_NATIVE_C_HEADER(header) <C://Program Files//Microsoft Visual Studio .NET 2003//Vc7//include//header>
#endif
  
6. 打开一个命令窗口.
   运行 VC.NET 2003 的 VCVARS32.BAT.

8. 运行下列命令
   set XERCESCROOT=x:/xerces-c-src2_7_0
   set ICUROOT=x:/icu
   cd x:/xerces-c-src2_7_0/scripts

9. 将 ICU 作为 Xerces 的字符集转换服务器.运行如下命令
   perl packageBinaries.pl -c VC7.1 -x VC7.1 -s x:/xerces-c-src2_7_0 -o x:/xerces-c2_7_0-win32 -t icu

   或者将 ICU 作为消息装载器. 运行如下命令
   perl packageBinaries.pl -c VC7.1 -x VC7.1 -s x:/xerces-c-src2_7_0 -o x:/xerces-c2_7_0-win32 -m icu

   运行 perl packageBinaries.pl 可以看到其它可选参数.

10. 编译完成后.
   xxx.lib 文件位于 x:/xerces-c2_7_0-win32/lib 和 x:/icu/lib 下
   xxx.dll 文件位于 x:/xerces-c2_7_0-win32/bin 和 x:/icu/bin 下 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值