IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> FFMPEG(三)编译脚本中的FLAGS如何编写 -> 正文阅读

[移动开发]FFMPEG(三)编译脚本中的FLAGS如何编写

FLAGS组成

我们在编译ffmpeg库的sh脚本里有这么一串FLAGS,用于gcc或clang编译器

FLAGS=“-isystem KaTeX parse error: Expected group after '_' at position 54: …-androideabi -D_?_ANDROID_API__=API -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -marm -march=$CPU -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,–noexecstack -Wformat -Werror=format-security -O0 -fPIC”,

这么一长串是怎么来的,谁人能记住,其实不用记住,它是从Android开发工具里导出来的,然后再拼上include头文件路径等。

1.1 从androidStuido里导出FLAGS

我们使用androidStudio向导新建一个nativeC++工程(如工程名nativeTest),编译成功后,我们打开电脑位置到nativeTest目录下,搜索build.ninja文件,打开后找到FLAGS,如下图:
在这里插入图片描述

复制出FLAGS的值:FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O0 -fno-limit-debug-info -fPIC

1.2 再拼一个-isystem 和 android API平台版本号

isystem

  • -isystem $NDK_ROOT/sysroot/usr/include/arm-linux-androideabi;(32位CPU)

  • -isystem $NDK_ROOT/sysroot/usr/include/aarch64-linux-android;(64位CPU)

isystem表示在后面的这个目录下$NDK_ROOT/sysroot/usr/include/arm-linux-androideabi
搜索头文件

android API平台版本号

-D__ANDROID_API__=21;

-D__ANDROID_API__=21: 表示编译ffmpeg是针对android系统API 21版本。从21开始ndk用的是clang来编译C/C++。

最终FLAGS的值如下:

  • 32位(如armv7-a):
    FLAGS = -isystem $NDK_ROOT/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O0 -fno-limit-debug-info -fPIC

  • 64位(如armv8-a)
    FLAGS = -isystem $NDK_ROOT/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O0 -fno-limit-debug-info -fPIC

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-07-20 19:00:48  更:2022-07-20 19:03:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 3:26:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码