android studio ndk编译原生可执行文件-程序员宅基地

修改CMakeLists.txt文件

cmake_minimum_required(VERSION 3.4.1)

set(CMAKE_VERBOSE_MAKEFILE on)
set(EXECUTABLE_OUTPUT_PATH      "${CMAKE_CURRENT_SOURCE_DIR}/src/main/assets/${ANDROID_ABI}")
add_executable(xxxx ${
    CMAKE_CURRENT_SOURCE_DIR}/xxxx.cpp)
target_include_directories (mybinary PUBLIC ${
    CMAKE_CURRENT_SOURCE_DIR})
add_library( # Sets the name of the library.
             xxxxlib

             # Sets the library as a shared library.
             SHARED

             # Provides a relative path to your source file(s).
             # Associated headers in the same location as their source
             # file are automatically included.
             ${
    CMAKE_CURRENT_SOURCE_DIR}/xxxxlib.cpp )


修改gradle.build文件

externalNativeBuild {
    
        cmake {
    
            path "CMakeLists.txt"
        }
    }

    defaultConfig {
    
        externalNativeBuild {
    
            cmake {
    
                targets "xxxxlib", "xxxx"
                arguments "-DANDROID_TOOLCHAIN=clang"
                cFlags "-DTEST_C_FLAG1", "-DTEST_C_FLAG2"
                cppFlags "-DTEST_CPP_FLAG2", "-DTEST_CPP_FLAG2"
                abiFilters 'armeabi', 'armeabi-v7a', 'x86', 'x86_64'
            }
        }
    }

原文链接:http://stackoverflow.com/questions/38917297/compile-and-use-abi-dependent-executable-binaries-in-android-with-android-studio

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_35746383/article/details/78899602

智能推荐

【Darwin学习笔记】之QTSSReflectorModule的Announce消息处理-程序员宅基地

RTSP Announce命令是数据源向Darwin服务端主动发起的上报本地媒体sdp信息的命令,在Darwin中处理该命令的函数为QTSSReflectorModule模块的DoAnnounce()函数,下面对该函数的进行剖析:【转载请注明出处】:http://blog.csdn.NET/longlong5301. 判断sAnnounceEnabled是否开启,由以下配置

软件架构师的10项重要技能_禅与计算机程序设计艺术的博客-程序员宅基地

软件架构师是一名软件开发专家,他可以进行高层设计选择并决定技术标准,包括软件编码标准,工具和平台。(出处: 维基百科:软件架构师)软件架构(architecture)是一个系统的基本组织,由其组件、它们之间的相互关系和环境以及决定系统设计和演化的原则来表示。(出处: 软件架构手册)

UML中的6大关系_uml足球论坛-程序员宅基地

大话设计模式上的一个图,我用EA画出来的: UML中的6大关系相关英文及音标: 依赖关系 dependency [di'pendənsi] 关联关系 association [ə,səuʃi'eiʃən] 聚合关系 aggregation [ˌægrɪˈgeɪʃ_uml足球论坛

okHttp缓存的操作_okhttp 缓存-程序员宅基地

第一步:导入依赖第二步:创建布局找控件第三步:写代码:第4步:第五步:第6步:第7步:子线程操作_okhttp 缓存

实验7-1-3 将数组中的数逆序存放 (20分)-程序员宅基地

本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素。输入格式:输入在第一行中给出一个正整数n(1≤n≤10)。第二行输入n个整数,用空格分开。输出格式:在一行中输出这n个整数的处理结果,相邻数字中间用一个空格分开,行末不得有多余空格。输入样例:410 8 1 2输出样例:2 1 8 10#include<stdio.h>#define maxn 10//法1 先存入数组,然后逆置数组(交换a[0]<->a[n-1

RPC远程过程调用实例详解-程序员宅基地

1、创建IDL文件,定义接口。IDL文件可以由uuidgen.exe创建。首先找到系统中uuidgen.exe的位置,如:C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools。在此目录下运行命令"uuidgen/i /ohello.idl",即可在该位置生成一个IDL文件:hello.idl。文件内...

随便推点

Android 系统状态栏沉浸式/透明化完整解决方案-程序员宅基地

转自:http://www.jianshu.com/p/34a8b40b9308前言网上已经有很多有关于系统状态栏的解决方案,这篇文章也不会有什么新奇的解决方案,都是本人经过自己试验,统计提炼出来的相对靠谱的一套解决方案.如果是android大牛可以忽略本文,怕让您贱笑.只面向小白,帮助小白减少摸索的时间.关于术语网上有很多争论:你这状态栏是变色龙状态栏,不是沉

python实现重命名文件夹下所有文件名_python重命名文件夹下所有文件-程序员宅基地

# coding = 'utf-8'import osdef rename(path): i = 0 '该文件夹下所有的文件(包括文件夹)' FileList = os.listdir(path) '遍历所有文件' for files in FileList: '原来的文件路径' oldDirPath = os.pat..._python重命名文件夹下所有文件

事件冒泡和事件委托_事件委托和事件冒泡区别-程序员宅基地

定义事件冒泡: 事件从最深节点开始,然后逐步向上传播事件事件委托:事件委托是利用事件冒泡原理实现的,就是事件目标自身不处理事件,而是把处理任务委托给其父元素或者祖先元素,甚至根元素事件委托的应用场景为DOM中的很多元素绑定相同的事件为DOM中尚不存在的元素绑定事件注意:使用事件委托时,如果注册到目标元素上的其他事件处理程序使用了.stopPropagetion()阻止了事件传播,那么..._事件委托和事件冒泡区别

Contest1389 - 2018年第三阶段个人训练赛第四场.果实计数(快速幂)-程序员宅基地

问题 J: 果实计数时间限制: 1 Sec 内存限制: 128 MB提交: 313 解决: 148[提交] [状态] [讨论版] [命题人:admin]题目描述淘淘家有棵奇怪的苹果树,这棵树共有n+1层,标号为0~n。这棵树第0层只有一个节点,为根节点。已知这棵树为b叉树,且保证是一颗满b叉树。如图为一颗满3叉树。现在,该树第n层的每个节点上都结出了一个苹果,淘淘想知道共结了...

Darker and Darker-程序员宅基地

bfs是广度优先 最先到达white点的路径所需步骤最少 所以bfs遍历整个图 找到最少步骤的max学过bfs肯定能理解的 不理解就得去学bfs了出错可能是因为题意吧我的代码特别冗杂#include<bits/stdc++.h>#define ll long long#define sc(x) scanf("%d",&x)usin...

统计文章中单词出现的次数_countwords(in);-程序员宅基地

最近看到一本好书《C++ Cookbook》,不是C++语言入门教程,是一本关于c++程序设计日常问题的珍贵解决方案。里面的收集了大量C++比较现实的问题解决方案,如数字计算、日期和时间、字符串和文本操作、多线程和数学编程等等,并且还介绍了Boost库(里面有些问题解决也是用这个库)。里面讲的问题都比较实际,代码实现也很规范,不过也有些问题偏简单,在之前学习语言就知道了。 _countwords(in);