1. xerces介绍
    Xerces-C++ 的前身是 IBM 的 XML4C 项目。XML4C 和 XML4J 是两个并列的项目,而 XML4J 是 Xerces-J——Java 实现——的前身。IBM 将这两个项目的源代码让与 Apache 软件基金会(Apache Software Foundation),他们将其分别改名为 Xerces-C++ 和 Xerces-J。这两个项目是 Apache XML 组的核心项目(如果看到的是“Xerces-C”而不是“Xerces-C++”,也是同一个东西,因为这个项目一开始就是用 C(译者注:原文为C++)语言编写的)。
    IBM 仍然在 Xerces-C++ 的基础上继续 XML4C 项目。从我所研究的版本来看,XML4C 与 Xerces-C++ 相比突出的好处是,它的默认安装对大量国际字符编码提供了更好的支持
    xerces-J的资料,可以参考网址http://xerces.apache.org/xerces-j/
    xerces-c的资料,可以参考网址http://xerces.apache.org/xerces-c/
    下面我们在linux上安装xerces-c
  2. 下载,安装
    http://xerces.apache.org/xerces-c/上下载linuxe/unix下的源程序包xerces-c-current.tar.gz,上传到linux/unix主机,我用的是linux,顺序执行如下操作:
    解压,命令:tar -xzvf xerces-c-current.tar.gz
    添加环境变量,vi .bash_profile,在文件最后添加如下一行
    export XERCESCROOT=$HOME/xerces-c-src_2_7_0
    保存退出,行source .basu_profile使环境变量生效
    进入源程序目录
    cd $XERCESCROOT/src/xercesc
    执行automake,生成configure脚本,运行如下命令
    autoconf
    运行configure脚本,并加入选项
    ./runConfigure -plinux -cgcc -xg++ -minmem -nsocket -tnative -rpthread
    编译生成lib库,如果上面的runConfigure运行没有什么问题,执行gmake
    gmake
    如果gmake没有出现错误,说明一切ok
    编译示例程序
    cd $XERCESCROOT/samples
    ./runConfigure -plinux -cgcc -xg++
    gmake
    cd $XERCESCROOT/bin
    运行示例程序DOMCount,提示如下错误信息
    ./DOMCount: error while loading shared libraries: libxerces-c.so.27: cannot open shared object file: No such file or directory
    根据提示得信息判断,这是程序你在运行得时候找不到共享库libxerces-c.so.27,显然,这是程序在执行得过程中,搜索路径不正确,看看上面得配置,在编译完xercescroot之后,没有设置和库路径相关得环境变量,只要将xercescroot的库路径添加到一个环境变量,这样程序在执行过程中,就能找到libxerces-c.so.27库了;如果出现找不到共享库的情况都可以通过修改环境变量来解决问题,该环境变量名为:LD_LIBRARY_PATH
    添加环境变量,vi .bash_profile,在最后添加一行,如下:
    export LD_LIBRARY_PATH=$XERCESCROOT/lib
    保存退出,执行source .bash_profile,使环境变量生效
    以上的每一步都要正确无误地执行之后,才能进行下一步
  3. xerces-c和tuxedo结合的问题
    由于tuxedo8.1以上的版本都内置了xerces-c,这样我们在开发tuxedo服务,并且用xerces-c包做解析的时候,由于你开发用的xerces版本和tuxedo内嵌的版本可能会不一样,一些符号的定义就会不一样了,这样在编译的时候会报一些阿莫名奇妙的错误,这时应该避免使用tuxedo自带的xerces头文件,把$TUXEDIR/include下的xercesc目录改名就可以了.

    如果你在开发的时候用的xerces-c版本和tuxedo自带的xerces-c版本相同,就不会有问题,如果版本不同就得注意.
    我建议,最好你开发得时候用什么版本,在tuxedo结合编译运行的时候,也用这个版本.

    知道xerces的版本号
    从xerces的xerces/util/XercesVersion.hpp文件中,根据XERCES_VERSION_MAJOR,XERCES_VERSION_MINOR,XERCES_VERSION_REVISION可以得到主次,临时版本号。
    早期的在Xerces_DLLVersionStr文件中定义
  4. xerces-c++编程
    后面我会进行补充.
    如有问题,请留言,我们一起解决,总结经验.
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:1 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐