1、环境及版本信息
环境信息:suse linux
Android-ndk版本:android-ndk-r18b
2、添加NDK环境变量
在/etc/profile文件内容的后面中添加环境变量
NDKROOT=/home/tools/android-ndk-r18b
export PATH=$NDKROOT:$PATH
添加后执行source /etc/profile
3、编写 Android.mk
编译脚本及代码结构
目录结构Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# 生成的so库的名字为libdemo.so
LOCAL_MODULE := demo
# 用于编译的c文件
LOCAL_SRC_FILES := demo.c
#添加静态库
LOCAL_STATIC_LIBRARIES += /home/lei/build/lib/libswscale.a
LOCAL_STATIC_LIBRARIES += /home/lei/build/lib/libavutil.a
LOCAL_STATIC_LIBRARIES += /home/lei/build/lib/libavcodec.a
#添加库的h文件路径
LOCAL_C_INCLUDES += /home/lei/build/include
# 生成库的类型,是动态库,静态库还是可执行文件,这里先来生成一个动态库
include $(BUILD_STATIC_LIBRARY)
Applocation.mk
APP_ABI := armeabi-v7a
APP_PLATFORM := android-18
4、执行编译
在当前目录下执行ndk-build
编译成功后再jni同目录先回生成一个obj目录,静态库在obj/local/armeabi-v7a下面
编译后目录结构
网友评论