Loading... # macOS下编译FFmpeg的universal binrary ## 背景 最近在做课程设计,主要用到Qt6和FFmpeg,希望能提供macOS版本的应用。为了避免Apple Silicon和Intel版本分发的困难,希望能打包成一份“universal binrary”。 对于Qt6来说,没有任何障碍,因为Qt6已经提供了universal binrary。然而,目前网络上提供FFmpeg预编译包要么是`x86_64`的,要么是`arm64`的,于是决定自己编译。中途踩了很多坑,写篇文章记录一下解决方案。 ## 基本原理 1. 交叉编译 ```bash ./configure --enable-cross-compile --prefix=./install_x86_64 --arch=x86_64 --cc='clang -arch x86_64' ``` 2. 合并二进制文件 ```bash lipo -create -arch arm64 {arm64_binrary} -arch x86_64 {x86_64_binrary} -output {universal_binrary} ``` 其中能合并的二进制文件包括`executable`,`.a`,`.dylib`。 ## 预编译共享库 这里提供预编译的共享库和构建脚本 https://github.com/ColorsWind/FFmpeg-macOS ## 参考 Stackoverflow关于交叉编译的讨论 https://stackoverflow.com/questions/71683881/ffmpeg-refuses-to-compile-for-x86-64-arch-on-m1-mac/71851433 FFmpeg关于平台的说明 https://ffmpeg.org/platform.html 最后修改:2022 年 04 月 13 日 © 允许规范转载 赞 0 如果觉得我的文章对你有用,请随意赞赏