1. Xalan-C++源代码下载http://xalan.apache.org/xalan-c/download.html2. Xalan-C++帮助文档https://xml.apache.org/xalan-c/index.html Xalan-C++需要Xerces-C++的支持。所以需要先下载和编译Xerces-C++。注意...
1. Xalan-C++源代码下载
http://xalan.apache.org/xalan-c/download.html
2. Xalan-C++帮助文档
https://xml.apache.org/xalan-c/index.html
Xalan-C++需要Xerces-C++的支持。所以需要先下载和编译Xerces-C++。注意版本匹配, Xalan-C++ 1.11需要Xerces-C++ 3.0以上的版本。
之前的版本不建议使用,对Linux支持不是很好
3.Xerces-C++源代码下载
http://mirror.bit.edu.cn/apache/xerces/c/3/sources/
4.Xerces-C++交叉编译
#!/bin/sh XALAN_SRC_PATH=/root/Documents/work_space/xalan-c/xalan-c XERCES_SRC_PATH=/root/Documents/work_space/xerces-c/xerces-c-3.1.0 GCC=your-cross-compile-path/your-gcc GPP=your-cross-compile-path/your-g++
export XERCESCROOT=your-install-pathecho ${XALAN_SRC_PATH} echo ${XERCES_SRC_PATH} cd $XERCES_SRC_PATH if [ $? -ne 0 ]; then echo "failed" else ./configure --disable-static CC=${GCC} CXX=${GPP} --prefix=${XERCESCROOT} --host=arm-linux if [ $? -ne 0 ]; then echo "failed" else make install fi fi
5. Xerces-C++帮助文档
源代码的doc/index.html里面有
6.Xalan-C++交叉编译
Xalan-C在交叉编译过程中会使用到自己生成的MsgCreator,所以如果编译机器和目标机器的可执行程序不一致,可能会导致编译失败。
所以这里要采用特殊的方法。
修改…./xalan-c-1.11/c/src/xalanc/Utils/MsgCreator/Malefile.in文件
将XSL_BIN_DIR改成XSL_BIN_TMP_DIR,然后在编译脚本里加上XSL_BIN_TMP_DIR这个变量路径,指向本及可执行的MsgCreator程序(可以是之前本机编译好的程序)
注意,MsgCreator还依赖Xerces生成的库,因此不要忘记在脚本里加上
下面是参考编译脚本:
#!/bin/sh XERCESCROOT=/opt/project/dependencies/gnueabi/xerces XALANCROOT=/root/Documents/work_space/xalan-c-1.11/c GCC=your-cross-compile-path/your-gcc GPP=your-cross-compile-path/your-g++
INSTALL_PATH=/opt/project/dependencies/gnueabi/xalan XSL_BIN_TMP_DIR=/root/Documents/work_space/xalan-c-1.11/c/binTmp export XERCESCROOT export XALANCROOT export XSL_BIN_TMP_DIR export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/project/dependencies/x86/xerces/lib:/opt/project/dependencies/x86/xerces/bin cd ${XALANCROOT} if [ $? -ne 0 ]; then echo "failed" else ./runConfigure -p linux -c ${GCC} -x ${GPP} -P ${INSTALL_PATH} -C--host=arm-linux if [ $? -ne 0 ]; then echo "failed" else make clean make install fi fi
10. 其它细节
本文只是记录一些比较大的坑,一些正常流程可以参考帮助文档。
本文标题为:Arm Linux交叉编译Xalan-C++
基础教程推荐
- C/C++编程中const的使用详解 2023-03-26
- 一文带你了解C++中的字符替换方法 2023-07-20
- C利用语言实现数据结构之队列 2022-11-22
- C语言基础全局变量与局部变量教程详解 2022-12-31
- C++中的atoi 函数简介 2023-01-05
- C++详细实现完整图书管理功能 2023-04-04
- C++使用easyX库实现三星环绕效果流程详解 2023-06-26
- 详解c# Emit技术 2023-03-25
- 如何C++使用模板特化功能 2023-03-05
- C语言 structural body结构体详解用法 2022-12-06