【问题标题】:linking libavcodec os x ffmpeg ApplicationServices.framework链接 libavcodec os x ffmpeg ApplicationServices.framework
【发布时间】:2015-12-30 03:01:08
【问题描述】:

这是我的错误:(ffmpeg 的较新版本)

dyld: Library not loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
  Referenced from: /Users/me/path/to/lib/libavcodec.dylib
  Reason: Incompatible library version: libavcodec.dylib requires version 64.0.0 or later, but ApplicationServices provides version 1.0.0

我已经阅读了关于 SO 的问题,这些问题说您需要链接 ApplicationServices.framework... 我已经完成了,这没有区别...

我已经搜索过该框架的其他版本:

$ mdfind ApplicationServices.framework
/System/Library/Frameworks/ApplicationServices.framework

只有一个……

然后检查框架...

$ otool -L /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices 
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices:
    /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 48.0.0)
    /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 600.0.0)
...

和 libavcodec

otool -L ../lib/libavcodec.dylib 
../lib/libavcodec.dylib:
    libavcodec.dylib (compatibility version 56.0.0, current version 56.60.100)
    @loader_path/libswresample.dylib (compatibility version 1.0.0, current version  ...
...
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 64.0.0, current version 600.0.0)

我正在使用-mmacosx-version-min=10.7 编译所有内容

所以可能是工具链中的错误?

编译器:

clang -v
Apple LLVM version 7.0.2 (clang-700.1.81)
Target: x86_64-apple-darwin15.2.0
Thread model: posix

链接器:

ld -v
@(#)PROGRAM:ld  PROJECT:ld64-253.9
configured to support archs: armv6 armv7 armv7s arm64 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em (tvOS)
LTO support using: Apple LLVM 7.0.2 (clang-700.1.81)

【问题讨论】:

    标签: ffmpeg linker clang ld osx-elcapitan


    【解决方案1】:

    这似乎是clang中的一个错误,我重新安装了Xcode 6.x,现在libavcodec的otool输出是:

    /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 600.0.0)
    

    这仍然与库本身的输出不匹配......但它的兼容性版本足够低......我会看看我是否可以隔离并提交错误......

    【讨论】:

    • 太棒了...再次遇到这个... 7个月后,在同一问题上浪费时间...
    猜你喜欢
    • 2014-01-05
    • 1970-01-01
    • 2013-08-04
    • 2012-03-31
    • 2011-09-29
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多