博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义Application.mk Android.mk jni目录
阅读量:6690 次
发布时间:2019-06-25

本文共 2740 字,大约阅读时间需要 9 分钟。

hot3.png

ndk-build NDK_APPLICATION_MK=./Application.mk  NDK_DEBUG=1

APP_BUILD_SCRIPT=$(APP_PROJECT_PATH)/cpp/Android.mk(相对于项目的位置)

Application.mk

APP_CPPFLAGS:=-frtti -fexceptionsAPP_ABI:=armeabi armeabi-v7a x86#APP_ABI:=x86APP_OPTIM := debug# In NDK r8e, we have to use GCC 4.7 for C++11 features like thread, mutex, etc.#  The default GCC is 4.6, which does NOT define macro _GLIBCXX_HAS_GTHREADS,#  so you’ll get errors like "mutex in namespace std does not name a type" etc.#NDK_TOOLCHAIN_VERSION := 4.7# GNU STL implements most C++11 features. Use either gnustl_static or gnustl_shared#  Without this your C++ code will not be able to access headers like 
,
APP_STL := gnustl_staticAPP_BUILD_SCRIPT=$(APP_PROJECT_PATH)/cpp/Android.mk

Android.mk

LOCAL_SRC_FILES := ../cpp/native-lib.cpp  (相对于jni目录的位置)

LOCAL_PATH := $(call my-dir)  include $(CLEAR_VARS)  OPENCV_LIB_TYPE:=STATICifeq ("$(wildcard $(OPENCV_MK_PATH))","")  #try to load OpenCV.mk from default install locationinclude C:\work-software\OpenCV-android-sdk\sdk\native\jni\OpenCV.mk#include /opt/OpenCV-android-sdk/sdk/native/jni/OpenCV.mkelseinclude $(OPENCV_MK_PATH)endif  LOCAL_MODULE    := native-lib#MY_CPP_LIST := $(wildcard $(LOCAL_PATH)/*.cpp)#LOCAL_SRC_FILES := $(MY_CPP_LIST:$(LOCAL_PATH)/%=%)LOCAL_SRC_FILES := ../cpp/native-lib.cppFILE_LIST := $(wildcard /opt/OpenCV-android-sdk/sdk/native/lib/arm64-v8a/*)LOCAL_LDLIBS := -llogLOCAL_LDLIBS += -ljnigraphicsLOCAL_LDLIBS += -lz # Compression library# C++11 and threading enabling features.#  Otherwise c++11, pthread, rtti and exceptions are not enabled by defaultLOCAL_CPPFLAGS := -std=c++11 -pthread -frtti -fexceptionsinclude $(BUILD_SHARED_LIBRARY)

 

android {    compileSdkVersion 21    buildToolsVersion "21.1.2"    defaultConfig {        applicationId "com.xxx.yyy"        versionCode 1        versionName '1.0'	    minSdkVersion 10	    targetSdkVersion 21    }    buildTypes {        release {            minifyEnabled false            proguardFiles ('proguard-android.txt')        }    }    tasks.withType(JavaCompile) {        compileTask -> compileTask.dependsOn 'ndkBuild', 'copyJniLibs'    }    sourceSets {        main {	        jni.srcDirs = []            jniLibs.srcDirs = ['src/main/jniLibs']        }    }}task ndkBuild(type: Exec) {	def ndkDir = project.plugins.findPlugin('com.android.application').sdkHandler.getNdkFolder()    commandLine "$ndkDir/ndk-build.cmd", '-C', 'src/main/jni',		    "NDK_OUT=$buildDir/ndk/obj",		    "NDK_APP_DST_DIR=$buildDir/ndk/libs/\$(TARGET_ARCH_ABI)"}task copyJniLibs(type: Copy) {    from fileTree(dir: file(buildDir.absolutePath + '/ndk/libs'), include: '**/*.so')    into file('src/main/jniLibs')}

 

转载于:https://my.oschina.net/leonardtang/blog/823182

你可能感兴趣的文章
子网的划分
查看>>
打造一台称手的工作站-Ubuntu上建立PHP服务器(apache+php+mysql)
查看>>
动态规划-装配线调度
查看>>
我的友情链接
查看>>
Android布局属性详解
查看>>
小企业数据备份
查看>>
抢滩登陆游戏android源码
查看>>
HAProxy负载均衡实验
查看>>
如何通过组策略配置proxy.pac
查看>>
设置ssh无密码登录
查看>>
webpack优化——定义“生产”环境
查看>>
我的友情链接
查看>>
OpenStack各服务所用端口号总结
查看>>
多线程并发下载图片NSThread
查看>>
Big Faceless Java Pdf报表生成器控件介绍
查看>>
hadoop kill mapreduce job
查看>>
XPE常见问题整理
查看>>
Vim编辑器详解
查看>>
sql 查询几个工作日之后的日期
查看>>
zeromq的使用:例子分析
查看>>