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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ndk编译libiconv

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

編譯環境:

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 jni

2.創建Android.mk文件(有版本要求可以創建Application.mk文件)

cd jni vim Android.mk

復制以下內容到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文件

./configurg

4.make

make

5.編譯(release版本)

ndk-build?NDK_DEBUG=0

6.編譯完成

目錄libs下會生成動態庫

?

編譯過程中出現的錯誤:

/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文件發現?HAVE_LANGINFO_CODESET 這個宏被打開導致

解決方法:

find . -name "config.h"

將所有config.h中的

#define HAVE_LANGINFO_CODESET 1 改為 #define HAVE_LANGINFO_CODESET 0

總結

以上是生活随笔為你收集整理的ndk编译libiconv的全部內容,希望文章能夠幫你解決所遇到的問題。

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