音视频学习之NDK交叉编译基础

本文介绍了NDK交叉编译的基础知识,包括交叉编译的概念、常用的编译工具如gcc、g++和clang,以及静态库和动态库的区别。文章详细阐述了编译过程的各个阶段,并通过示例演示了如何在Mac平台上使用clang和gcc进行交叉编译到Android的armeabi架构。最后,讨论了生成动态库的方法和验证动态库是否可用的步骤。
摘要由CSDN通过智能技术生成

我收集了一些学习用的资料,其中包含了很多学习,面试,中高进阶fluuter资料,还有很多视频详解,如果有同学想进一步了解,详情请看文末。也欢迎各路大神门前来装X。

交叉编译

交叉编译就是程序的编译环境和实际运行环境不一致,即在一个平台上生成另一个平台上的可执行代码。

比如NDK,你在Mac、Win或者Linux上生成的C/C++的代码要在Android平台上运行,就需要使用到交叉编译了。

通俗点说就是你的电脑和手机使用的CPU不同,所以CPU的指令集就不同,比如arm的指令集在X86上就不能运行。

常用的编译工具链

gcc

GNU C编译器。原本只能处理C语言,很快扩展,变得可处理C++。(GNU计划,又称革奴计划。目标是创建一套完全自由的操作系统)

Android在之后彻底移除了gcc,默认使用clang编译,所以使用不同版本的ndk对ffmpeg进行交叉编译时会出现同样的脚本在旧版的ndk能编译通过,但是旧版的就不编译不通过的问题。

笔者会在后面的学习过程中使用最新的ndk对最新版的ffmpeg进行交叉编译,并且会通过文章记录学习过程,感兴趣的同学可以持续关注。

g++

GNU c++编译器

gcc和g++都能够编译c/c++,但是编译时候行为不同。

对于gcc与g++会有以下区别:

后缀为.c的源文件,gcc把它当作是C程序&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值