Linux 下 编译Xerces-c++ 详解

 
 

 

前几天在搞XML解析,费了很大的周折才知道Xerces C++ 的用法

所以记录下来安装过程.

Linux 下 编译Xerces-c++
按照 doc/html 文件夹中的详细指导编译 Xerces-C++ 共享库。下面的命令展示了如何用压缩的源文件编译 Xerces-C++ 库。这里假定在像 /home/ 这样的目录中有 xerces-c-src_2_7_0.tar.gz 文件。不管选的是什么目录,它都应该与 XERCESCROOT 变量匹配,因为 configure 脚本有这个要求。


# cd /home
# gunzip xerces-c-src_2_7_0.tar.gz
# tar -xvf xerces-c-src_2_7_0.tar
# export XERCESCROOT=/home/xerces-c-src_2_7_0
# cd $(XERCESCROOT)/src/xercesc
# ./configure
# make all

对于本例后面的部分,我假设源树是在 /home/xerces-c-src_2_7_0 目录中。如果一切顺利,共享库应该出现在 lib 文件夹中。如果有问题,那么请参考 /doc/html 文件夹中的编译指导。这时,您可以将这个库(和 symlinks)拷贝到 /usr/lib ,或者定义相应的环境变量以使装载器可以找到新编译的库。

测试新库的方便方法是编译并运行一个例子:


# export XERCESCROOT=/home/xerces-c-src_2_7_0
# cd $(XERCESCROOT)/samples
# ./configure
# make all

我在一个全新安装的 Redhat Linux 9.0 上编译其中一个例子中遇到了一个小问题。链接器抱怨缺少与 pthread 相关的输出。我编辑了 Makefile.incl 文件以包括对 -lpthread 的引用并再次运行 configure 。第二次时键入 make all 就可以了。

#=============== LINUX SPECIFIC OPTIONS =========================
ifeq (${PLATFORM}, LINUX)
  ifeq (${COMPILER}, xlC_r) 
    CMP= -c ${CXXFLAGS} -qnotempinc
    CC= ${COMPILER} -c -D${PLATFORM}
    LINK =  ${COMPILER} ${LDFLAGS}
    PLATFORM_LIB_LINK_OPTIONS=-L/usr/local/lib
    EXTRA_LINK_OPTIONS=-lc ${EXTRA_LIBS}
    SHLIBSUFFIX=.so
  else
    CMP= -c ${CXXFLAGS}
    CC= ${COMPILER} -c -D${PLATFORM} -D_REENTRANT -fpic
    LINK =  ${COMPILER} -D${PLATFORM} -fpic ${LDFLAGS}
    PLATFORM_LIB_LINK_OPTIONS=-L/usr/local/lib -lpthread  //在这加上就行了
    EXTRA_LINK_OPTIONS=-lc ${EXTRA_LIBS}
    SHLIBSUFFIX=.so
  endif
endif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值