当前位置: 首页 > news >正文

Android NDK开发中常用的gradle配置

文章目录

  • externalNativeBuild
    • 1.配置通用的 CMake 构建选项
    • 2.指定 CMakeLists.txt 文件的位置和 CMake 版本
  • 指定ndk版本

externalNativeBuild

下面的gradle代码包含两个externalNativeBuild {}

android {defaultConfig {externalNativeBuild {cmake {cppFlags ""}}}externalNativeBuild {cmake {path "src/main/cpp/CMakeLists.txt"version "3.22.1"}}}

下面来区分两个什么联系和区别。

1.配置通用的 CMake 构建选项

在 Android 开发中,CMake 通常用于构建使用 C++ 编写的本地代码。
build.gradle 文件中,使用了 externalNativeBuild 块配置 CMake 构建。

externalNativeBuild {cmake {cppFlags ""}
}

这部分代码表明正在配置 CMake 构建,并在其中设置了一些 C++ 编译标志(cppFlags)。
解析一下各个部分:

  • externalNativeBuild 是一个 Android Gradle 插件提供的用于配置本地构建系统的部分。
  • cmake 表明希望使用 CMake 进行构建。
  • cppFlags 允许设置 C++ 编译器的标志。在这里,设置的是一个空字符串,表示没有额外的标志。

可以根据需要,将适当的编译标志添加到 cppFlags 中,以满足的项目需求。这可能包括优化标志、宏定义等。

例如:

externalNativeBuild {cmake {cppFlags "-O3 -DDEBUG_MODE"}
}

-O3 是一个优化标志,而 -DDEBUG_MODE 是一个用于定义调试模式的宏。

2.指定 CMakeLists.txt 文件的位置和 CMake 版本

externalNativeBuild {cmake {path "src/main/cpp/CMakeLists.txt"version "3.22.1"}
}

这个块用于更详细地配置 CMake 构建。

  • path 指定了 CMakeLists.txt 文件的位置,该文件包含了关于如何构建本地代码的指令。在这里,它指定了 “src/main/cpp/CMakeLists.txt”。
  • version 指定了所使用的 CMake 版本。在这里,它指定了 “3.22.1” 版本。

这个块主要用于告诉 Gradle 在构建本地代码时应该使用哪个 CMakeLists.txt 文件以及使用哪个版本的 CMake。

指定ndk版本

在 Gradle 中指定 NDK(Android Native Development Kit)版本,可以使用 android.ndkVersion 属性。通常是在 Android Gradle 插件的 android 配置块中设置:

android {...ndkVersion "21.4.7075529" // 指定你想要的 NDK 版本...
}

除了 ndkVersion 属性之外,还可以在 local.properties 文件中使用 ndk.dir 属性指定 NDK 的路径。例如:

ndk.dir=/path/to/your/ndk
http://www.lryc.cn/news/246034.html

相关文章:

  • 【AUTOSAR-DoIP】通过 DoIP 进行符合 Autosar 的车辆诊断
  • GPIO的使用--操作PE02 PE03 PE04实现开关控制灯泡亮灭
  • 【算法萌新闯力扣】:回文链表
  • php站点伪静态配置(Apache+Linux)
  • Figma 插件学习(二)- 常用属性和方法
  • 基于Flutter的图片浏览器的实现
  • STM32-使用固件库新建工程
  • 商用车量产智能驾驶路径思考
  • flink消费kafka限制消费速率
  • 搭建Appium工具环境
  • 【面经八股】搜广推方向:常见面试题(六)
  • 6.前端--CSS-基础选择器【2023.11.26】
  • Java制作“简易王者荣耀”小游戏
  • 正则表达式例题-PTA
  • 基于Python的南京二手房数据可视化分析的设计与实现
  • 软件特征与类型
  • 无人机遥控器方案定制_MTK平台无人设备手持遥控终端PCB板开发
  • 【C++】静态成员
  • 单片机学习10——独立按键
  • 微服务系列(三)--通过spring cloud zuul过滤器实现线上流量复制
  • 微信小程序image组件图片设置最大宽度 宽高自适应
  • 虚幻学习笔记—文本内容处理
  • WhatsApp API号解封教程(内含图片指引和申诉模板)
  • 爬取极简壁纸
  • docker操作手册
  • css Vue尺子样式
  • C++ 数据结构之-最小栈(MinStack)
  • 【日常总结】优雅升级Swagger 2 升至 3.0, 全局设置 content-type application/json
  • 2023.11.27如何使用内网穿透工具实现Java远程连接操作本地Elasticsearch搜索引擎
  • HNU 练习八 结构体编程题1. 评委打分