cmake交叉编译android(转)
生成cmake编译所需的文件
#-H指向CMakeLists.txt文件父级目录
#-B指向中间产物目录
#-DCMAKE_LIBRARY_OUTPUT_DIRECTORY指向so输出目录
#-DCMAKE_TOOLCHAIN_FILE指向android.toolchain.cmake文件,可以使用ndk自带的,也可以使用clone下来的项目中的文件
#-DANDROID_NDK指向ndk目录
#-DANDROID_ABI定义目标cpu结构,取值armeabi,armeabi-v7a,arm64-v8a,x86,x86_64,mips,mips64中的一个
#-DCMAKE_BUILD_TYPE定义构建类型,取值Debug或Release,Release构建做-O3三级优化
#-DANDROID_PLATFORM定义最低api版本
#-DANDROID_TOOLCHAIN表示交叉编译链类型,取值gcc或者clang,gcc已经被废弃
#-DANDROID_STL指明使用的stl
#-DCMAKE_C_FLAGS代表c编译器参数
#-DCMAKE_CXX_FLAGS代表c++编译器参数
#更多参数见google官方文档 https://developer.android.com/ndk/guides/cmake.html
#如果需要使用ninja构建,追加-GAndroid Gradle - Ninja参数,该参数标准cmake可执行文件不支持,只有sdk下的cmake支持 /Users/lizhangqu/AndroidSDK/cmake/3.6./bin/cmake \
-H"../jni" \
-B"../build/android/armeabi-v7a" \
-DANDROID_ABI="armeabi-v7a" \
-DANDROID_NDK="/Users/lizhangqu/AndroidNDK/android-ndk-r14b" \
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY="../build/android/libs/armeabi-v7a" \
-DCMAKE_BUILD_TYPE="Release" \
-DCMAKE_TOOLCHAIN_FILE="/Users/lizhangqu/AndroidNDK/android-ndk-r14b/build/cmake/android.toolchain.cmake" \
-DANDROID_PLATFORM="android-14" \
-DANDROID_TOOLCHAIN="clang" \
-DCMAKE_C_FLAGS="-fpic -fexceptions -frtti" \
-DCMAKE_CXX_FLAGS="-fpic -fexceptions -frtti" \
-DANDROID_STL="c++_static" \
cmake交叉编译android(转)的更多相关文章
- CMake交叉编译配置
很多时候,我们在开发的时候是面对嵌入式平台,因此由于资源的限制需要用到相关的交叉编译.即在你host宿主机上要生成target目标机的程序.里面牵扯到相关头文件的切换和编译器的选择以及环境变量的改变等 ...
- 哪位大兄弟有用 cMake 开发Android ndk的
一直用 Android studio 开发ndk,但是gradle支持的不是很好,只有experimental 版本支持 配置各种蛋疼.主要每次新建一个module都要修改配置半天.之前也看到过goo ...
- 使用ndk交叉编译android各平台版本的第三方库
只要弄明白了ndk-bundle的目录结构,交叉编译的基本原理就可以自行编写脚本去编译了.从仓库拿下代码包后,一般在linux平台下编译当前平台使用的库,只要使用其自动配置脚本configure进行平 ...
- CMake 交叉编译
CMake 交叉编译 交叉编译就是说在平台 A (宿主机)上编译出可以在平台 B (目标机) 上运行的程序,比如在 x86 上编译 ARM 程序 要交叉编译首先要去下载目标平台的工具链,比如要编译 A ...
- cmake编译android平台的libPoco
1.下载源代码,解压到POCO-1.7.8-ALL 2.从$ANDROID_NDK\cmake下复制android.toolchain.cmake AndroidNdkGdb.cmake Androi ...
- CMAKE交叉编译快速入门
cmake 工具 cmake 使用非常简单,最常用的用法是 cmake . 在当前目录执行cmake 官方帮助 -D <var>:<type>=<value> -D ...
- 如何用CMake构建Android C++库
https://fireflytech.org/2017/11/04/compiling-cc-libraries-for-android/ https://blog.csdn.net/xhp2014 ...
- 通过cmake在Android中调用c语言,且三方应用通过so库调用c语言
1. 新建JniUtils类实现native方法 2. 在build中执行clean project 再rebuild project 生成class文件. 注意:最新版本的AndroidStud ...
- Ubuntu下VsCode+CMake 交叉编译
在安装配置好VsCode后,下载相关插件.如图: 其中CMake Tools是为了方便使用CMake的扩展工具. 在创建工程前,先在VSCode打开一个空的目录(你的Project目录),再对CMak ...
随机推荐
- 黑吃黑第一季/全集Banshee迅雷下载
第一季 Banshee Season 1 (2013)看点:“Banshee”在爱尔兰盖尔语中被称为“bean sidhe”,意思是“拥有超能力的女人”.不过在鲍尔的新剧中,Banshee并不是指超自 ...
- hdu 2049 不easy系列之(4)——考新郎
不easy系列之(4)--考新郎 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 《App,这样设计才好卖》
<App,这样设计才好卖> 基本信息 作者: (日)池田拓司 译者: 陈筱烟 丛书名: 图灵交互设计丛书 出版社:人民邮电出版社 ISBN:9787115359438 上架时间:2014- ...
- Java中线程池,你真的会用吗?
在<深入源码分析Java线程池的实现原理>这篇文章中,我们介绍过了Java中线程池的常见用法以及基本原理. 在文中有这样一段描述: 可以通过Executors静态工厂构建线程池,但一般不建 ...
- [转]http status 汇总
转:http://www.cnblogs.com/cxd4321/archive/2008/11/20/1337776.html 常见HTTP状态码 200 OK 301 Moved Permanen ...
- 【ContestHunter】【弱省胡策】【Round8】
平衡树维护凸壳/三角函数+递推+线段树 官方题解:http://pan.baidu.com/s/1sjQbY8H 洛阳城里春光好 题目大意:(其实出题人已经写的很简短了……直接copy的-_-.sor ...
- tfjob的一篇文章,跟公司内使用方式类似
可以看一下这篇文章: https://yq.aliyun.com/articles/600601?spm=a2c4e.11153940.blogcont602109.12.2e241125zH1kNB
- cesium原理篇(三)--地形(1)【转】
转自:http://www.cnblogs.com/fuckgiser/p/5824743.html 简述 前面我们从宏观上分析了Cesium的整体调度以及网格方面的内容,通过前两篇,读者应该可以比较 ...
- ASP,ASP.net,JSP语法、内置对象对比
1 各自的HelloWord版本 1.1 ASP <% Response.Write("hello asp") %> 文件名为test.asp. 1.2 ASP.ne ...
- js中各种跨域问题实战小结
什么是跨域?为什么要实现跨域呢? 这是因为JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象.也就是说只能访问同一个域中的资源.我觉得这就有必要了解下javascript中的同源 ...