日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

libiconv android编译,(OK) 编译libiconv-1.14(静态库)—CentOS 7— android-ndk

發布時間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 libiconv android编译,(OK) 编译libiconv-1.14(静态库)—CentOS 7— android-ndk 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

+++++++++++++編譯libiconv-1.14?(靜態庫)

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/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9/include-fixed -I$NDK_ROOT/platforms/android-21/arch-arm/usr/include"

export CPPFLAGS="$CFLAGS"

export CXXFLAGS="$CFLAGS"

export LDFLAGS="--sysroot=$SYSROOT -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"

編譯命令:gl_cv_header_working_stdint_h=yes ./configure --host=arm-linux-androideabi

錯誤:configure: error: /bin/sh build-aux/config.sub arm-linux-androideabi failed

//You might need a newer config.sub and config.guess, 2010-05-20 or later.

//You can obtain the newest version of config.guess and config.sub from the ‘config’ project at The commands to fetch them are

$ wget -O config.guess ''

$ wget -O config.sub ''

或者:

[root@localhost libiconv-1.14]# locate config.guess

/opt/gcc-4.9.0/config.guess

[root@localhost libiconv-1.14]# cp /opt/gcc-4.9.0/config.guess /opt/gcc-4.9.0/config.sub build-aux/

[root@localhost libiconv-1.14]# cp /opt/gcc-4.9.0/config.guess /opt/gcc-4.9.0/config.sub libcharset/build-aux/

[root@localhost libiconv-1.14]# pwd

/opt/cBPM-android/libiconv-1.14

[root@localhost libiconv-1.14]# cp config.guess config.sub build-aux/

[root@localhost libiconv-1.14]# cp config.guess config.sub libcharset/build-aux/

[root@localhost libiconv-1.14]# gl_cv_header_working_stdint_h=yes ./configure --host=arm-linux-androideabi

[root@localhost libiconv-1.14]# gl_cv_header_working_stdint_h=yes ./configure --host=arm-linux-androideabi --enable-static --disable-shared

[root@localhost libiconv-1.14]# make -j5

[root@localhost libiconv-1.14]# find . -name libiconv.a

./lib/.libs/libiconv.a

//復制庫文件(arm)

[root@localhost libiconv-1.14]# cp ./lib/.libs/libiconv.a /opt/cBPM-android/criteria-lin/lib

[root@localhost libiconv-1.14]# cp ./lib/.libs/libiconv.so* /opt/cBPM-android/criteria-lin/lib

[root@localhost libiconv-1.14]# cp /usr/lib64/libWorkflowEngineD.so /opt/cBPM-android/criteria-lin/lib

[root@localhost libiconv-1.14]# cp /usr/lib64/libLibraries.so /opt/cBPM-android/criteria-lin/lib

+++++++++++++編譯Criteria.Tools.Executor錯誤

/opt/cBPM-android/criteria-lin/lib/libxerces-c.a(IconvTransService.o):IconvTransService.cpp:function xercesc_3_1::IconvLCPTranscoder::calcRequiredSize(char const*, xercesc_3_1::MemoryManager*): error: undefined reference to '__ctype_get_mb_cur_max'

解決方法:+++++++++++++ 在上面基礎上,編譯libiconv (靜態庫)

這似乎是NDK的BUG,在stdlib.h內有宣告出__ctype_get_mb_cur_max函數,但是卻沒有去實作它。如果出現這個問題,不建議直接修改NDK,要到libiconv目錄下,修改「libcharset/lib」目錄裡的「localcharset.c」檔案,在檔案最下面加上以下程式碼即可。

[root@localhost libiconv-1.14]# gedit /opt/cBPM-android/libiconv-1.14/libcharset/lib/localcharset.c

size_t __ctype_get_mb_cur_max(void){

return 1;

}

保存,重新編譯libiconv (靜態庫)

[root@localhost libiconv-1.14]# nm ./lib/.libs/libiconv.a |grep ctype_get_mb_cur_max

U __ctype_get_mb_cur_max

0000060c T __ctype_get_mb_cur_max

//如果您指定了 -A 選項,則 nm 命令只報告與該文件有關的或者庫或者對象名。

[root@localhost libiconv-1.14]# nm -A ./lib/.libs/libiconv.a|grep ctype_get_mb_cur_max

./lib/.libs/libiconv.a:iconv.o:???????? U __ctype_get_mb_cur_max

./lib/.libs/libiconv.a:localcharset.o:0000060c T __ctype_get_mb_cur_max

[root@localhost libiconv-1.14]#

[root@localhost criteria-lin]#? nm -A lib/lib* |grep ctype_get_mb_cur_max

nm: lib/libc.so:無符號

lib/libiconv.a:iconv.o:???????? U __ctype_get_mb_cur_max

lib/libiconv.a:localcharset.o:0000060c T __ctype_get_mb_cur_max

lib/libiconv.so:???????? U __ctype_get_mb_cur_max

lib/libiconv.so.2:???????? U __ctype_get_mb_cur_max

lib/libiconv.so.2.5.1:???????? U __ctype_get_mb_cur_max

nm: lib/libsqlite.so:無符號

nm: lib/libstdc++.so:無符號

lib/libxerces-c-3.1.so:???????? U __ctype_get_mb_cur_max

lib/libxerces-c.a:IconvTransService.o:???????? U __ctype_get_mb_cur_max

所以,編譯Criteria.Tools.Executor時,需要 靜態鏈接 /opt/cBPM-android/criteria-lin/lib/libiconv.a

閱讀(1747) | 評論(0) | 轉發(0) |

總結

以上是生活随笔為你收集整理的libiconv android编译,(OK) 编译libiconv-1.14(静态库)—CentOS 7— android-ndk的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。