Android NDK 移植 libpng和libz
来源:互联网 发布:我知女人心小说阅读 编辑:程序博客网 时间:2024/06/06 19:13
环境:
Ubuntu12.04(64bit) android-ndk-r8d libpng-1.5.13 zlib-1.2.7
因为libpng用到了库zlib 所以也要下载来一起编译
zlib (http://www.zlib.net/)
libpng(http://www.libpng.org/)
可以用两种方法编译源码, GNU Makefile 和 Android的 ndk-build.
本人用第一种方法未成功, 将CC改为arm-linux-androideabi-gcc不行,
这里采用的是第二种方法,部分参考网上帖子。
第一种方法例子: http://blog.csdn.net/lixinye0123/article/details/3839136
第二种方法例子:http://blog.csdn.net/gengshenghong/article/details/7016014
主要是将两个开源库编译成静态库.a文件, 供自己的代码调用, 编译成动态库.so, 最终打包进apk。
首先把libpng-1.5.13 和 zlib-1.2.7 两个文件夹放到jni下.
1. 在/jni下新建Android.mk, 内容如下:
include $(all-subdir-makefiles)
2. 在zlib-1.2.7 和libpng-1.5.13下分别新建Android.mk
zlib-1.2.7的Android.mk内容如下:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libz
LOCAL_SRC_FILES := adler32.c compress.c crc32.c deflate.c gzclose.c gzlib.c gzread.c \
gzwrite.c infback.c inffast.c inflate.c inftrees.c trees.c uncompr.c zutil.c
include $(BUILD_STATIC_LIBRARY)
libpng-1.5.13的Android.mk内容如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := png.c pngerror.c pngget.c pngmem.c pngpread.c \
pngread.c pngrio.c pngrtran.c pngrutil.c pngset.c pngtrans.c \
pngwio.c pngwrite.c pngwtran.c pngwutil.c
LOCAL_MODULE := libpng
LOCAL_STATIC_LIBRARIES := libz
include $(BUILD_STATIC_LIBRARY)
自己的src代码也有一个Android.mk文件, 里面添加一行, 引用两个开源库:
LOCAL_WHOLE_STATIC_LIBRARIES := libpng libz
ndk-build编译成功后,通过png.h等头文件使用开源库里的函数, 具体参考libpng官方mannual 。
jni
├── Android.mk
├── libpng-1.5.13
│ └── Android.mk
├── src
│ ├── Android.mk
│ └── hello-jni.c
└── zlib-1.2.7
└── Android.mk
- Android NDK 移植 libpng和libz
- Android ndk移植c库libpng
- Android ndk移植c库libpng
- 交叉编译libz libpng
- Android NDK编译libPng为静态库
- 使用NDK移植/编译开源库(3)libpng的编译
- Android NDK移植libiconv和libxml2
- android-ndk ffmpeg移植
- Android项目通过NDK整合libjpg与libpng
- Android NDK r8b和FFmpeg 0.11.2移植
- Android原生(Native)C开发之六:libpng移植笔记
- Android原生(Native)C开发之六:libpng移植笔记
- NDK Android* 应用移植方法
- NDK Android* 应用移植方法
- Android--移植android ndk c++各种兼容性问题
- 【Ubuntu 64bit】libz.so.1: cannot open shared object file: No such file or directory 【Android NDK】
- GORC | NDK | 移植 | makefile.in | Android.mk
- Android ffmpeg 移植 cygwin+ndk-r6b+win7
- linux下安装、配置、自启动subversion(svn)
- 显示或隐藏页面元素
- 从一个简单的servlet做起
- 文件上传
- PopUpWindow实现半透明弹出框关键点
- Android NDK 移植 libpng和libz
- 入门视频采集与处理(BT656简介)
- CCS3.3 can't open file '/.obj' for input解决方法
- Delphi时间:毫秒
- 图像、帧、片、NALU
- Web开发百宝箱——提升网站档次的时尚 jQuery 图片滚动插件
- 【设计模式】【命令模式】
- 网站访问速度测试
- Zookeeper使用和探究