• libiconv build in android


    以编译libiconv-1.13.1为例
    1,安装 NDK  设置安装NDK环境变量 ANDROID_NDK_ROOT (自行定义)
    2,获取源码 
        $ mkdir libiconv
        $ cd libiconv
        $ wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
    
    3,解压,
        $ tar zxvf libiconv-1.13.1.tar.gz
    4,把liniconv-1.13.1重命名为jni
        $ mv libiconv-1.13.1 jni
    5,创建Android.mk文件
        $ cd jni
        $ vim Android.mk
    复制一下内容到Android.mk中保存并且退出    
    LOCAL_PATH:= $(call my-dir)
    #libiconv.so
    include $(CLEAR_VARS)
    LOCAL_MODULE := libiconv
    LOCAL_CFLAGS := 
      -Wno-multichar 
      -DANDROID 
      -DLIBDIR="c" 
      -DBUILDING_LIBICONV 
      -DIN_LIBRARY
    
    LOCAL_SRC_FILES := 
      libcharset/lib/localcharset.c 
      lib/iconv.c 
      lib/relocatable.c
    
    LOCAL_C_INCLUDES += 
      $(LOCAL_PATH)/include 
      $(LOCAL_PATH)/libcharset 
      $(LOCAL_PATH)/lib 
      $(LOCAL_PATH)/libcharset/include 
      $(LOCAL_PATH)/srclib
    include $(BUILD_SHARED_LIBRARY)
    
    6,配置    生成linux环境下的config.h文件
        $ ./configure
    
    7,make
        $ make
    
    8,执行编译
         $ $ANDROID_NDK_ROOT/ndk-build V=1
    8.1、编译时提示:
    
    libiconv-1.14/jni/libcharset/lib/localcharset.c:51:24: error: langinfo.h: No such file or directory
    
    解决方法:
    
    修改目录文件libcharset/config.h的宏定义,禁止该宏定义:
    
    /* Define if you haveand nl_langinfo(CODESET). */
    
    #define HAVE_LANGINFO_CODESET 0
    
    8.2、提示错误:
    
    报“c undeclaired”错误
    
    解决方法:
    
    修改文件/libcharset/lib/localcharset.c中函数get_charset_aliases (void)
    
    搜索:int c;
    
    把该变量定义放到该函数的开始处
    
    8.3 继续执行编译
         $ $ANDROID_NDK_ROOT/ndk-build V=1
    
    此时编译完成
    在目录jni/libs/armeabi-v7a下会有libiconv.so库文件
  • 相关阅读:
    SQLite的总结与在C#的使用
    Linq中比较字符串类型的日期
    C#中委托,匿名函数,lamda表达式复习
    MYSQL中SUM (IF())
    C#在属性中用Lambda语法
    Mysql绿色版安装和遇到的问题
    FormsAuthentication权限管理
    存储过程中高性能安全式SQL拼接
    JavaScript实现搜索联想功能
    JavaScript组成
  • 原文地址:https://www.cnblogs.com/fuyanwen/p/4030261.html
Copyright © 2020-2023  润新知