当前位置: 首页 > 工具软件 > Xerces > 使用案例 >

xerces 64位 linux安装,linux安装xml开发包xerces-c

杜俊晤
2023-12-01

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

下载,安装

从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,使环境变量生效

以上的每一步都要正确无误地执行之后,才能进行下一步

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文件中定义

xerces-c++编程

后面我会进行补充.

如有问题,请留言,我们一起解决,总结经验.

 类似资料: