android静态库编译成x86,(OK) 编译xerces-c-3.1.2(静态库)—CentOS 7— android-ndk

编译xerces-c (静态库)—CentOS 7— android-ndk

[root@localhost xerces-c-3.1.2]# pwd

/opt/cBPM-android/xerces-c-3.1.2

[root@localhost xerces-c-3.1.2]# make clean

export XERCES="/opt/cBPM-android/xerces-c-3.1.2/"

export NDK_ROOT="/opt/android-on-linux/android-ndk-r10d"

export TOOLCHAIN="$NDK_ROOT/platforms/android-21/arch-arm"

export ARMVERSION=7

export SYSROOT="$TOOLCHAIN"

export CFLAGS="--pipe --sysroot=$SYSROOT -I$NDK_ROOT/sources/cxx-stl/stlport/stlport -I$NDK_ROOT/platforms/android-21/arch-arm/usr/include -I$NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/include -I$NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9/include-fixed -I$NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9/include -I$XERCES/src/xercesc/xinclude -I$XERCES/tests/src/xinclude -I$XERCES/tests/src/xinclude/tests/xinclude"

export CPPFLAGS="$CFLAGS"

export CXXFLAGS="$CFLAGS"

export LDFLAGS="-L$SYSROOT/usr/lib/ -L$NDK_ROOT/sources/cxx-stl/stlport/libs/armeabi-v7a -L/opt/cBPM-android/criteria-lin/lib -lstlport_static -lgcc -lc -liconv"

export CPATH="$NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin"

export CPP="$CPATH/arm-linux-androideabi-cpp"

export CXX="$CPATH/arm-linux-androideabi-g++"

export CC="$CPATH/arm-linux-androideabi-gcc"

export LD="$CPATH/arm-linux-androideabi-ld"

export AR="$CPATH/arm-linux-androideabi-ar"

[root@localhost xerces-c-3.1.2]# ac_cv_func_iconv_open=yes ac_cv_func_iconv_close=yes ac_cv_func_mblen=yes ac_cv_func_wcstombs=yes ac_cv_func_mbstowcs=yes ac_cv_func_iconv=yes ./configure --host="arm-linux-eabi" --enable-static --disable-shared --enable-transcoder-iconv

[root@localhost xerces-c-3.1.2]# make -j5

[root@localhost xerces-c-3.1.2]# cp ./src/.libs/libxerces-c.a /opt/cBPM-android/criteria-lin/lib

-----------------------

/opt/android-on-linux/android-ndk-r10d/platforms/android-21/arch-arm/usr/include

/opt/android-on-linux/android-ndk-r10d/sources/cxx-stl/stlport/stlport

/opt/android-on-linux/android-ndk-r10d/sources/cxx-stl/gabi++/include

/opt/android-on-linux/android-ndk-r10d/sources/cxx-stl/gnu-libstdc++/4.9/include

/opt/android-on-linux/android-ndk-r10d/platforms/android-21/arch-arm/usr/lib

/opt/android-on-linux/android-ndk-r10d/sources/cxx-stl/stlport/libs/armeabi-v7a

/opt/android-on-linux/android-ndk-r10d/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi

-----------------------

// -nostdlib -Xlinker -R$SYSROOT/usr/lib $SYSROOT/usr/lib/crtbegin_static.o $SYSROOT/usr/lib/crtend_android.o

// ls /opt/android-on-linux/android-ndk-r10d/sources/cxx-stl/stlport/libs/armeabi-v7a

// libstlport_shared.so  libstlport.so  libstlport_static.a  thumb

[root@localhost xerces-c-3.1.2]# ./configure --host=arm-linux-androideabi --enable-static --disable-shared --enable-transcoder-iconv

错误:configure: error: Xerces cannot function without a transcoder

解决方法如下:

//编译静态库

[root@localhost xerces-c-3.1.2]# ac_cv_func_iconv_open=yes ac_cv_func_iconv_close=yes ac_cv_func_mblen=yes ac_cv_func_wcstombs=yes ac_cv_func_mbstowcs=yes ac_cv_func_iconv=yes ./configure --host=arm-linux-androideabi --enable-static --disable-shared --enable-transcoder-iconv

[root@localhost xerces-c-3.1.2]# make -j5

错误:

xercesc/util/PlatformUtils.cpp:713:4: error: #error No timing support is configured for this platform. You must configure it.

解决方法,在 config.h  加下面一行

#define HAVE_GETTIMEOFDAY 1

#define HAVE_STRCASECMP 1

#define HAVE_STRNCASECMP 1

//成功编译静态库

[root@localhost xerces-c-3.1.2]# find . -name libxerces-c.a

./src/.libs/libxerces-c.a

//复制库文件(arm)

[root@localhost xerces-c-3.1.2]# cp ./src/.libs/libxerces-c.a /opt/cBPM-android/criteria-lin/lib

+++++++++++++编译Criteria.Tools.Executor错误

xercesc/util/XMLAbstractDoubleFloat.cpp:430: error: undefined reference to 'localeconv'

解决方法:+++++++++++++ 在上面基础上,编译xerces-c (静态库)

[root@localhost xerces-c-3.1.2]# pwd

/opt/cBPM-android/xerces-c-3.1.2

[root@localhost xerces-c-3.1.2]# find . -name XMLAbstractDoubleFloat.cpp

./src/xercesc/util/XMLAbstractDoubleFloat.cpp

[root@localhost xerces-c-3.1.2]# gedit ./src/xercesc/util/XMLAbstractDoubleFloat.cpp

//    lconv* lc = localeconv();

//    char delimiter = *lc->decimal_point;

char delimiter = '.';        //把localeconv()调用给绕过去了

保存,重新编译xerces-c (静态库)

阅读(1200) | 评论(0) | 转发(0) |

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值