【问题标题】:FFmpeg libavcodec.a Xcode linker issues - Undefined symbols for architecture arm64FFmpeg libavcodec.a Xcode 链接器问题 - 架构 arm64 的未定义符号
【发布时间】:2016-06-09 06:51:21
【问题描述】:

我已经使用这个脚本为 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)

我试过了

  • 在我的项目的 Build Settings 中更改架构设置
  • 将死代码剥离设置为 NO
  • 仔细检查了我的库/链接器搜索路径

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

感谢任何帮助。谢谢!

【问题讨论】:

    标签: ios xcode ffmpeg linker


    【解决方案1】:

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

    【讨论】:

    • 您好先生,请看一下这个stackoverflow.com/questions/57883141/…
    • 嗨,我在 MacOS 上使用 CMake 从命令行构建 OpenCV。您能否在答案中提供有关如何添加 VideoToolbox.framework 并与之链接的更多详细信息?
    【解决方案2】:

    我通过在Building PhasesVideoToolbox.framework的链接库中添加VideoToolbox.framework解决了这个问题

    【讨论】:

    猜你喜欢
    • 2015-10-04
    • 2019-05-20
    • 2021-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    相关资源
    最近更新 更多