来源:http://blog.chinaunix.net/u/8649/showart_73478.html
前几天在搞XML解析,费了很大的周折才知道Xerces C++ 的用法
所以记录下来安装过程.
Linux 下
编译Xerces-c++
按照 doc/html 文件夹中的详细指导编译 Xerces-C++ 共享库。下面的命令展示了如何用压缩的源文件编译
Xerces-C++ 库。这里假定在像 /home/ 这样的目录中有 xerces-c-src_2_7_0.tar.gz 文件。不管选的是什么目录,它都应该与 XERCESCROOT 变量匹配,因为 configure 脚本有这个要求。
# tar -zxvf xerces-c-src_2_7_0.tar.gz
# cd ./xerces-c-src_2_7_0
# chmod +x configure
# ./configure --prefix=/usr
# make
# make install
对于本例后面的部分,我假设源树是在 /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