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相关推荐
- android2.2编译,Android NDK编译Box2D_V2.2
如果大家有留意的话,就知道现在很流行的 愤怒的小鸟 的物理引擎是使用了Box2D,那么如何将这好东西移植到Android上呢?在网上找了一遍,发现资料还是少得可怜,于是自己研究研究一下,遇到问题就go ...
- 【Android开发】:在任意目录执行NDK编译
2019独角兽企业重金招聘Python工程师标准>>> 文以简单的例子讲述如何在任意目录把自己写的C代码使用NDK提供的交叉编译该工具来编译成Android可使用的静态库/动态库. ...
- Android开发实践:在任意目录执行NDK编译
本文暂时不讲述如何用NDK编译第三方开源代码库,而是先以简单的例子讲述如何在任意目录把自己写的C代码编译成Android可使用的静态库/动态库. 1. 准备环境 首先,你得安装了Android的NDK ...
- win10系统 ubuntu子系统 进行ndk编译笔记
报错1:error adding symbols: file in wrong format collect2: error: ld returned 1 exit status win10系统 ub ...
- NDK 编译和使用静态库、动态库
NDK 编译和使用静态库.动态库 情况一:编译静态库 情况二:编译动态库 情况三:编译动态库+静态库 情况四:已有第三方静态库(动态库),编译静态库(动态库) 默认所有代码和文件在$project/j ...
- Android Studio NDK 代码 Source Insight调试 (NDK 目前开发方案 | NDK 编译 | 导入 so 库 | 项目编码转换)
作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/52088039 最近在移植一个 JNI 项目, 比较纠结, A ...
- Android NDK编译中在libs\armeabi中加入第三方so库文件的方法
Android NDK编译中在libs\armeabi中加入第三方so库文件的方法 假设要加入库文件的名字为libffmpeg.so文件 1.要在project\jni目录下新建一目录prebuilt ...
- 使用NDK编译VTK
VTK提供了对安卓的CMAKE编译支持,其介绍文件在源代码根目录下的 "/cmake/android.toolchain.cmake". 对Wndows的编译自持描述为: 注意:但 ...
- NDK编译错误expected specifier-qualifier-list before...
基于cocos2d-x在win7下开发android程序,一般都会选择先在win32下调试,等最后再在eclipse环境下安装测试到真机上.期间,要使用到cocos2d-x提供的一些简化方案进行NDK ...
- 10.29 工作笔记 ndk编译C++,提示找不到头文件(ndk-build error: string: No such file or directory)...
ndk编译C++.提示找不到头文件(ndk-build error: string: No such file or directory) 被这个问题弄得愁眉苦脸啊.心想为啥一个string都找不到呢 ...
最新文章
- 深入浅出Pytorch:02 PyTorch基础知识
- 通过三个直观步骤理解ROC曲线
- 【Android Demo】悬浮窗体实现
- Python 计算各类距离
- MIMO雷达比幅单脉冲测角精度分析(系统工程与电子技术)
- OS / Linux / SIGCHLD 信号
- IOS-UITextField-改变光标颜色
- 知乎神回复:普通程序员一天的工作生活是怎样的?网友实名羡慕!
- 34 FI配置-财务会计-应收账款和应付账款-定义应付汇票的备选统驭科目
- 【正则表达式】正则表达式匹配${xxx}
- python中seek(10、1)_Python中index()和seek()的用法(详解)
- zabbix监控之模板使用、网络发现及邮件报警功能
- 终端天线—9.4G手机调试
- vue3.0实现jsoneditor组件
- 《设计模式修炼真经》15 — 模板方法模式
- 贝塞尔Bezier曲线的使用
- 沙箱支付实现扫码支付教程(前后端分离版)
- 【WLAN】【测试】Linux下aircrack-ng的应用之空口抓包全解
- iOS安全–在非越狱平台进行越狱开发(附分析流程)
- java se7 if_Java SE7新特性之在数值型的字面值中使用下划线
热门文章
- Windows、Linux、Mac OS下的锐捷认证的程序——mentohust
- 如何快速学习PLC编程
- App 上架 AppStore和证书的各种区别
- 统计Java源代码中关键字的数目(每个关键字的数目)
- 泛微OA如何重置管理员密码
- mysql8.0.13驱动包_MySQL ODBC驱动 V8.0.13 32/64位 官方版
- VB.net 进度条使用
- 利用动软代码生成器-------.net链接SQl数据库
- 程序员你写的代码,被爆出黑产了!
- Flash Builder 4.7安装破解教程详解(图文)