iOS 编译包含 bitcode 的 fdk-aac 静态库(包含 arm64)

不多说了,这里是编译脚本。下载下来这个编译脚本后,修改一下 CFLAGS 选项,添加 -fembed-bitcode ,如下:

细心的话,你设置一下 XCode 的 bitCode 选项的 enable 为 YES 的话,在 sourcetree 里查看批文件的修改也可看到其实修改到的也是这一行。

有几点要注意的:

1、它这个脚本使用的是 0.1.3 的 fdk-aac ,最新版的在这里。fdk-aac-0.1.3 版的源码我放这里了,顺便放了一个已经包含 bitCode libfdk-aac.a 在里面,要的自取。

2、放 fdk-aac 源码的文件夹必须命名为 fdk-aac-0.1.3 ,不然会找不到路径。当然你也可以修改编译脚本。

3、编译脚本 build-fdk-aac.sh 和存放 fdk-aac-0.1.3 源码的文件夹必须是在同一个路径,just like that,

buildAAC ---->  build-fdk-aac.sh

 fdk-aac-0.1.3   ------>  source core

   ........

   ........

修改:上面的这个 fdk-aac-0.1.3 最新版源码是不支持 arm64 架构的,所有编译出来的包含 bitcode 的 fdk-aac.a 也是不包含 arm64 架构。我 fork 了一份新的 fdk-aac-master 代码修改了一下编译脚本,现在是可以支持所有架构了,包括 armv7 armv7s i386 x86_64 arm64 这几个,当然也包含 bitCode。

下载下来后,依次运行下面脚本:

./autogen.sh

./build_ios_xcode6.sh

注意:需要先安装automakelibtool

brew install automake

brew install libtool

编译出错的话一般看下出错提示信息就好了。

最后编译完成后可以用命令查看是否包含了 bitcode ,

//查看 .a 是否包含 bitCode
otool -arch armv7 -l xxx.a | grep __bitcode | wc -l

输出结果大于 0 的为包含,否则为不包含!(这个只是查看 armv7 的,查看所有的架构的话去掉 -arch armv7 就好了。)



//查看 .a 文件包含的架构:
lipo -info xxx.a

参考资料:

fdk-aac build script for ios

ios ffmpeg 编译

ffmpeg-compilationGuide (没啥用,看一下就好)

发布了171 篇原创文章 · 获赞 333 · 访问量 141万+

猜你喜欢

转载自blog.csdn.net/chaoyuan899/article/details/51701100