CentOS下编译Xalan-C++1.10.0

背景
OS:CentOS6.2
编译器:gcc
Xalan-C++:1.10.0
Xalan-C++下载地址:http://xml.apache.org/xalan-c/

文档约定
xerces-C++2.8.0源码路径为/vendor/xerces/xerces-c-src_2_8_0
Xalan-C++1.10.0源码路径为/vendor/xalan-c/Xalan-C_1_10_0-src

编译步骤
1)编译和安装xerces-C++2.8.0
注意:最好安装xerces-C++(make install),否则需要设置xerces-C++的include和lib路径

2)导出XERCESCROOT
#export XERCESCROOT=/vendor/xerces/xerces-c-src_2_8_0/

3)导出XALANCROOT
#export XALANCROOT=/vendor/xalan-c/Xalan-C_1_10_0-src/xml-xalan/c

4)进入编译目录
#cd $XALANCROOT/src/xalanc

5)运行配置,生成Makefile
#./runConfigure -p linux -c gcc -x g++

6)编译
#make

编译过程中若出现如下错误:
/vendor/xalan-c/Xalan-C_1_10_0-src/xml-xalan/c/src/xalanc/XalanDOM/XalanDOMString.cpp:251: 错误:‘memmove’在此作用域中尚未声明
/vendor/xalan-c/Xalan-C_1_10_0-src/xml-xalan/c/src/xalanc/XalanDOM/XalanDOMString.cpp: In static member function ‘static xalanc_1_10::XalanDOMString::size_type xalanc_1_10::XalanDOMString::length(const char*)’:
/vendor/xalan-c/Xalan-C_1_10_0-src/xml-xalan/c/src/xalanc/XalanDOM/XalanDOMString.cpp:780: 错误:‘strlen’在此作用域中尚未声明
修改/vendor/xalan-c/Xalan-C_1_10_0-src/xml-xalan/c/src/xalanc/XalanDOM/XalanDOMString.cpp文件
增加如下代码:
#include <string.h>

若出现如下错误:
/vendor/xalan-c/Xalan-C_1_10_0-src/xml-xalan/c/src/xalanc/XMLSupport/FormatterToHTML.cpp:175: 错误:‘memset’在此作用域中尚未声明
修改/vendor/xalan-c/Xalan-C_1_10_0-src/xml-xalan/c/src/xalanc/XMLSupport/FormatterToHTML.cpp
增加如下代码:
#include <string.h>

若出现如下错误:
/vendor/xalan-c/Xalan-C_1_10_0-src/xml-xalan/c/src/xalanc/XSLT/ElemNumber.cpp:1472: 错误:‘memset’在此作用域中尚未声明
修改/vendor/xalan-c/Xalan-C_1_10_0-src/xml-xalan/c/src/xalanc/XSLT/ElemNumber.cpp
增加如下代码:
#include <string.h>

若出现如下错误:
/vendor/xalan-c/Xalan-C_1_10_0-src/xml-xalan/c/src/xalanc/PlatformSupport/DirectoryEnumerator.hpp:346: 错误:‘strlen’在此作用域中尚未声明
修改/vendor/xalan-c/Xalan-C_1_10_0-src/xml-xalan/c/src/xalanc/PlatformSupport/DirectoryEnumerator.hpp
增加如下代码:
#include <string.h>

相关推荐