CocoaLibSpotify - 库未加载

Posted

技术标签:

【中文标题】CocoaLibSpotify - 库未加载【英文标题】:CocoaLibSpotify - Library not loaded 【发布时间】:2014-04-11 12:06:29 【问题描述】:

我创建了一个简单的 mac 应用程序,它使用 Cocoa 包装器进行 libspotify。

当我将项目导出为应用程序并尝试运行它时,它会立即崩溃。

崩溃报告:

Application Specific Information:
  dyld: launch, loading dependent libraries

Dyld Error Message:
  Library not loaded: @rpath/CocoaLibSpotify.framework/Versions/A/CocoaLibSpotify
  Referenced from: /Users/USER/Desktop/Wunderkiste.app/Contents/MacOS/Wunderkiste
  Reason: image not found

otool 输出:

$ otool -L ~/Desktop/Wunderkiste.app/Contents/MacOS/Wunderkiste 
    @rpath/CocoaLibSpotify.framework/Versions/A/CocoaLibSpotify (compatibility version         1.0.0, current version 1.0.0)
    /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 20.0.0)
    /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1056.0.0)
    /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
    /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1265.0.0)
    /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData (compatibility version 1.0.0, current version 481.0.0)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 855.11.0)

项目 - 构建阶段

有什么想法吗?

【问题讨论】:

【参考方案1】:

您项目中的Runtime Search Paths 构建设置需要包含@loader_path/../Frameworks 以告诉动态链接器在运行时在哪里可以找到CocoaLibSpotify。

有关详细讨论,请参阅 Mike Ash 的 Linking and Install Names。

【讨论】:

rpath 很好(也基于那篇文章) 不,@rpath 不起作用 - 自己试试吧。 @rpath 是嵌入的框架,@loader_path/../Frameworks 是集成框架的应用程序,这就是问题所在。 刚刚又查了一遍,好像你看错了。引用:“打算嵌入Foo.framework 的应用程序将在构建时将-rpath @executable_path/../Frameworks 传递给链接器”。项目中的 Runtime Search Paths 设置是设置 -rpath 的东西。 你的 last 评论是正确的。但是安装路径是@rpath,如OP所示......只有-rpath必须传递给想要使用rpath中的lib的应用程序......这很酷。无需修改框架的安装名称 或引用:“该列表嵌入在应用程序中,因此可以由应用程序的构建过程控制,而不是框架的。因此,框架的单个副本可以用于多种用途。 "

以上是关于CocoaLibSpotify - 库未加载的主要内容,如果未能解决你的问题,请参考以下文章

大量内存泄漏 - CocoaLibSpotify

SDWebImage 库未从缓存加载图像

如何解决库未加载的错误?

仍然 dyld:库未加载

Heroku jQuery JavaScript 库未加载 - 404 错误

Xcode - dyld:库未加载