ndk编译libiconv
生活随笔
收集整理的這篇文章主要介紹了
ndk编译libiconv
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
編譯環(huán)境:
ubuntu16.04、NDK-17c、libiconv-1.16.tar.gz
?
步驟:
1.將libiconv-1.16.tgr.gz解壓并重命名為jni
tar zxvf libiconv-1.16.1.tar.gz mv libiconv-1.16.1 jni2.創(chuàng)建Android.mk文件(有版本要求可以創(chuàng)建Application.mk文件)
cd jni vim Android.mk復(fù)制以下內(nèi)容到Android.mk中保存并且退出
LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := libiconv LOCAL_CFLAGS := \-Wno-multichar \-DANDROID \-DLIBDIR="c" \-DBUILDING_LIBICONV \-DIN_LIBRARYLOCAL_SRC_FILES := \libcharset/lib/localcharset.c \lib/iconv.c \lib/relocatable.cLOCAL_C_INCLUDES += \$(LOCAL_PATH)/include \$(LOCAL_PATH)/libcharset \$(LOCAL_PATH)/lib \$(LOCAL_PATH)/libcharset/include \$(LOCAL_PATH)/srclib include $(BUILD_SHARED_LIBRARY)3.生成config.h文件
./configurg4.make
make5.編譯(release版本)
ndk-build?NDK_DEBUG=06.編譯完成
目錄libs下會生成動態(tài)庫
?
編譯過程中出現(xiàn)的錯誤:
/home/work/android/libiconv-1.16/obj/local/arm64-v8a/objs/iconv/libcharset/lib/localcharset.o: In function `locale_charset': /home/work/android/libiconv-1.16/jni/libcharset/lib/localcharset.c:696: undefined reference to `nl_langinfo' clang++: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [/home/work/android/libiconv-1.16/obj/local/arm64-v8a/libiconv.so] Error 1查看localcharset.c文件發(fā)現(xiàn)?HAVE_LANGINFO_CODESET 這個宏被打開導(dǎo)致
解決方法:
find . -name "config.h"將所有config.h中的
#define HAVE_LANGINFO_CODESET 1 改為 #define HAVE_LANGINFO_CODESET 0總結(jié)
以上是生活随笔為你收集整理的ndk编译libiconv的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文字
- 下一篇: mysql5.7.11 创建用户_修改更