FFMPEG(三)编译脚本中的FLAGS如何编写

举报
yd_57386892 发表于 2022/07/18 22:30:55 2022/07/18
【摘要】 FLAGS组成 我们在编译ffmpeg库的sh脚本里有这么一串FLAGS,用于gcc或clang编译器 FLAGS=“-isystem KaTeX parse error: Expected grou...

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

文章来源: blog.csdn.net,作者:冉航--小虾米,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/gaoxiaoweiandy/article/details/125834044

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。