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>