零、准备
- 编译环境:
Ubuntu16.0.4 - NDK版本:
android-ndk-r21c-linux-x86_64 - ffmpeg版本:4.4.1
- fdk-aac: fdk-aac-2.0.2
- lame: lame-3.100
一、理论基础
1.1、shell 中的环境变量
设置环境变量的方法有三种:
- 第一种是NDKROOT=你的实际路径 这是一种临时的环境变量,只在当前终端可见可用,而且对于一些层级更深的编译不可见,除非你清楚的知道你的变量就在这一层shell中使用
- 第二种是export CC=YOUR_CC,这种也是一种临时的环境变量,但它的可见性比第一种更广,能够在子级甚至更深的目录中生效或使用。所以保守情况下我们对一些系统环境变量重新赋值时我们会加上
export - 第三种是系统级的环境变量配置,它会在我们终端初始化时就进行设置,NDKROOT路径。我们要了解这个是因为我们需要在编写我们的shell时,能简化一些内容,比如将常用的文件路径以常量的方式定义,后续我们只需要引用常量即可,对于修改也很方便。对于一些系统自身的环境变量,设置环境变量会覆盖它的值,所以在定义环境变量时注意你是想覆盖它的值还是想新建一个环境变量,通过
envprint可以查看终端下所有环境变量。
1.2、GCC相关编译指令
我们编译Android端可用的代码,首先需要指定CC工具就是C语言编译器,如果不指定我们使用的是Linux下默认的CC,编译出来的程序也就只能Linux下可用了,对于Android平台不可用,毕竟二者还是有区别的,所以我们需要指定我们的CC。CC的路径就在我们的NDK路径下,NDK包含了各架构的编译工具,当然也包括CXX C++语言编译器。下面会具体讲到。 其次我们需要指定库,我们编译的ffmpeg如果想集成fdk-aac等三方库就得引入三方库的动态链接库的和

最低0.47元/天 解锁文章
1517

被折叠的 条评论
为什么被折叠?



