cmake 多次编译_Part01_CMakeLists构建管理多个模块的C代码
一、目录结构
根据我的个人管理习惯我喜欢在app目录下的CMakeLists引入到CPP目录下如果有多个项目每个项目构建一个CMakeLists分开管理。
二、app目录下的CMakeLists语法
cmake_minimum_required(VERSION 3.4.1)
#设置编译完成后so库生成的路径为 app/libs(可根据自己的习惯设置)
#set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/libs/${ANDROID_ABI})
#引入src/main/cpp/testjni目录下的CMakeLists
ADD_SUBDIRECTORY(src/main/cpp/testjni)
#引入src/main/cpp/testjni2目录下的CMakeLists
ADD_SUBDIRECTORY(src/main/cpp/testjni2)
三、项目下的CMakeLists语法,以tesijni为例
#引入头文件目录
include_directories(include)
# 获取当前目录下的所有的文件(目录)的路径并保存到 all_source 变量中
file(GLOB all_source *.cpp *.c )
#引入all_source变量中的源文件编译为native-lib的库
add_library( native-lib
SHARED
${all_source} )
#引入libs目录中第三方的libopencv_java.so库
add_library(lib_opencv
SHARED
IMPORTED)
set_target_properties(lib_opencv
PROPERTIES IMPORTED_LOCATION
${CMAKE_SOURCE_DIR}/libs/${ANDROID_ABI}/libopencv_java.so)
find_library( log-lib
log )
target_link_libraries( native-lib
${log-lib}
lib_opencv)
四、build.gradle配置
defaultConfig {
applicationId "com.taiyao.tongzi"
minSdkVersion 17
targetSdkVersion 25
versionCode 3
versionName "2.0.1"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
cppFlags "-frtti -fexceptions -ffast-math -O3"
arguments '-DANDROID_STL=gnustl_static' //支持C++异常处理标准模板快
arguments "-DANDROID_ARM_NEON=TRUE", "-DANDROID_TOOLCHAIN=clang"
}
}
ndk {
abiFilters 'armeabi-v7a'
}
}
sourceSets{
main{
jniLibs.srcDirs=['libs']
}
}
externalNativeBuild {
cmake {
path 'CMakeLists.txt'
}
}
cmake 多次编译_Part01_CMakeLists构建管理多个模块的C代码相关推荐
- 【Android NDK 开发】Android Studio 的 NDK 配置 ( 源码编译配置 | 构建脚本配置 | 打包配置 | CMake 配置 | ndkBuild 配置 )
文章目录 I . 源码编译配置 II . 构建脚本配置 III . NDK 函数库打包配置 IV . Java 与 C 代码示例 V . CMake 配置 ( CMakeLists.txt ) VI ...
- java 自动化编译_构建Jenkins自动化编译管理环境
今天研究了一下Jenkins,有了一个粗浅的认识,顺手把构建的过程说一下,后续慢慢补充: (1)Secure CRT 连接到Linux服务器 要注意的一点是,要搞好一个文件传输的路子,否则不好传东西. ...
- Bootstrap前端组件库+构建管理
目录 构建管理 Grunt Sass JavaScript Bootstrap作为前端组件库 一些语法 媒体查询 辅助类 栅栏系统 补充 代码示例 媒体查询 网格系统 建立可伸缩的甚至是响应式组件的方 ...
- Windows下使用VS Code编译和构建LoRaWan开源节点代码
Windows下使用VS Code编译和构建LoRaWan开源节点代码 1.下载LoRaWan节点端开源代码 2.构建LoRaMac-node的先决条件 2.1添加环境变量 3.使用VS Code构建 ...
- maven项目构建管理工具一站式全部搞定
内容目录 一.maven的概述 二.maven环境搭建 三.maven常用命令 四.maven的坐标和仓库 五.创建maven项目 六.创建maven web项目 概述: maven是基于项目对象模型 ...
- 利用CMake搭建软件编译架构
利用CMake搭建软件编译架构 0 写在前面的话 本博文主要介绍如何利用cmake组织软件编译,并且提供一个简单的软件编译架构的模板.大家可以根据自己实际情况进行改动,本文主要的内容: cmake 命 ...
- 使用Gradle进行项目构建管理
使用Gradle进行项目构建管理 安装配置Gradle Gradle的安装与配置 创建项目 使用gradle init命令创建root项目 E:\code\myself\china-unicorn&g ...
- Qt之CMake和MinGW编译OpenCV
这里编译的是最新版OpenCV3.4.3,编译过程比较曲折,大部分编译错误都可以查得到解决方法,也遇到了Google无果的错误,好在最后还是解决了,特此记录. 编译环境 win10-64bit Qt5 ...
- mysql5.7 cmake源码编译安装
mysql5.7 cmake源码编译安装, -----该文章的知识点是一个大牛总结的,我这里只是加工了一下,非原创文章. 搜狐开源镜像站:http://mirrors.sohu.com/ 网易开源镜像 ...
最新文章
- usaco Job Processing(mark)
- 【腾讯三面】你能现场写一下LRU算法吗?
- Cell封面:王二涛组在丛枝菌根共生“自我调节”研究中取得重大进展(视频+漫画解读)...
- Delphi 2010 secondsBetween Bug
- EasyDSS高性能流媒体服务器前端重构(六)- webpack-dev-server 支持手机端访问
- 直接用自己服务器做图床可以吗_我花 9 块钱搭了一个“私人图床”
- 防抖与节流方案_前端ajax优化解决方案
- 【转载】Java中各种修饰符与访问修饰符的说明
- VS2010中的sln,suo分别是什么文件
- SQLserver通过链接服务器连接oracle
- Docker容器实现原理及容器隔离性踩坑介绍
- 在 Mac 上如何将 Better Zip 设置为自动更新?
- MongoDB在RHEL6.5下的安装
- leach算法的实现过程_LEACH分簇算法实现和能量控制算法实现(示例代码)
- 传奇服务器修改npc外观,传奇NPC里面图片修改方法
- ROC曲线面积AUC详解
- java 微服务 dubbo_Dubbo Spring Cloud 重塑微服务治理
- 为什么国外程序员爱用Mac?
- 计算机类sci期刊影响因子排名,【科研】全球最新SCI期刊影响因子排名:第一名187.040!...
- python用turtle画字母n、h_详解python使用turtle库来画一朵花
热门文章
- mysql报错ERROR 1045 (28000)
- 帮助你在移动设备上生成倾斜控制(重力控制)的旋转效果jQuery插件 - lenticular.js...
- H3C vrrp *** ipsec 基本配置
- ubuntu开发c/c++帮助文档
- 饭卡问题(0-1背包的变形)
- PHP linux spl_autoload_register区分大小写
- 1、maven笔记(一):构建项目
- 谁都会做:简单易行的祛斑法 - 健康程序员,至尚生活!
- 垃圾收集器(CMS收集器 , G1收集器…)
- Spring MVC的表单标签库详解