背景
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>