本文主要是介绍NDK在windows下编译libpng,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
首先要去下载libng的源码: http://www.libpng.org/pub/png/libpng.html 最新版本是 1.5.13, 下载后解压到目录。
NDK打包需要固定的目录结构的,很简单。我的版本解压后是lpng1513,在这个目录下面建立文件夹jni,以后把其他的书有文件都剪切到jni下面。并且在jni下面创建Android.mk文件。内容如下:
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := png
LOCAL_SRC_FILES := \
pngget.c \
pngread.c \
pngrutil.c \
pngtrans.c \
pngwtran.c \
png.c \
pngmem.c \
pngrio.c \
pngset.c \
pngwio.c \
pngwutil.c \
pngerror.c \
pngpread.c \
pngrtran.c \
pngwrite.c \LOCAL_C_INCLUDES := png.h pngconf.h pngpriv.hinclude $(BUILD_STATIC_LIBRARY)include $(CLEAR_VARS)
LOCAL_MODULE := png2
LOCAL_STATIC_LIBRARIES := pnginclude $(BUILD_SHARED_LIBRARY)
这里mk文件有个让人疑惑的问题,单独的build_static_library总是不行,看了NDK的two-libs例子,它是一个static一个shared,所以这里也这么搞。同时会打包出so, a 文件,当然还有一堆ooooo
接下来用NDK编译, 在命令行进入lpng1513, 记住不是jni,以后运行ndk目录下面的ndk-build命令进行编译。
不出意外的话,会报错,缺少一个pnglibconf.h文件。找到这个jni/scripts/pnglibconf.h.prebuilt文件,从命名为pnglibconf.h放到jni下面。重新编译就可以了,我成功编译。
这篇关于NDK在windows下编译libpng的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!