ios 使用动态库解决ffmpeg库冲突
分类:
文章
•
2023-10-12 12:17:53
ios 使用动态库解决ffmpeg库冲突
- xcode 从6.0开始就支持动态库的创建和使用,但是苹果不允许使用动态库来作热插件。
- 由于本人是做直播sdk的,在ios端使用ffmpeg做编解码,客户有时会集成多家sdk,而且可能都会用到ffmpeg静态库,由于用的ffmpeg版本不一致,configure也都不一样,导致ffmpeg冲突,最终通过动态库一劳永逸的解决了这个问题,下面就以ffmpeg库为例来介绍:
- 首先用xcode创建一个动态库,如下图:
- 将ffmpeg静态库添加到刚才创建的动态库中,如下图:
- framework 的动态库与静态库之间的切换方式,如下:
- 在动态库中调用ffmpeg的接口,这里需要注意,如果你在动态库中没有调用ffmpeg接口,那么你编译动态库的时候,是不会将ffmpeg静态库中的函数编译到动态库中,如下是我在项目中使用ffmpeg接口的类:
- 编译生成动态库后,将动态库添加到项目中,动态库的使用方式和静态库不同,必须在Embedded Binaries中添加,如下图:
- 这种方式基本可以解决所有的静态库冲突。