FFmpeg libavcodec.a Xcode链接器问题 - 架构arm64的未定义符号

mah*_*fat 3 xcode linker ffmpeg ios

我使用这个脚本为iOS构建FFmpeg:https: //github.com/kewlbear/FFmpeg-iOS-build-script

我为所有架构构建,然后我再次为arm64构建(作为我想要的拱门),我甚至使用其他构建脚本来构建适用于iOS的FFmpeg.但是,我一直遇到同样的问题:

Undefined symbols for architecture arm64:
  "_VTDecompressionSessionCreate", referenced from:
      _av_videotoolbox_default_init2 in libavcodec.a(videotoolbox.o)
  "_VTDecompressionSessionDecodeFrame", referenced from:
      _videotoolbox_common_end_frame in libavcodec.a(videotoolbox.o)
  "_VTDecompressionSessionInvalidate", referenced from:
      _av_videotoolbox_default_free in libavcodec.a(videotoolbox.o)
  "_VTDecompressionSessionWaitForAsynchronousFrames", referenced from:
      _videotoolbox_common_end_frame in libavcodec.a(videotoolbox.o)
Run Code Online (Sandbox Code Playgroud)

我试过了

  • 更改项目的"构建设置"中的体系结构设置
  • 将死代码剥离设置为NO
  • 双重检查我的库/链接器搜索路径

请注意,所有链接器错误都来自同一个静态库(libavcodec.a).这让我相信我错过了链接器专门针对这些符号所需的其他库.我添加了FFmpeg构建中提到的所有库 - 请参见下图:

链接二进制文件/库的快照

任何帮助表示赞赏.谢谢!

mah*_*fat 6

成功构建并消除显示的链接器错误所需的框架是VideoToolbox.framework