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 - 库未加载的主要内容,如果未能解决你的问题,请参考以下文章