2012-09-19 45 views
8

我试图将SDL和SDL_ttf框架添加到我的应用程序中,并按照常规方式完成:将它们添加到“链接二进制文件库”部分中,并添加了一个复制文件阶段将其复制到Frameworks目录。这确实创建了一个嵌入式框架的应用程序包。然而,当我运行应用程序,我得到这个错误:将框架嵌入到Mac应用程序包中

dyld: Library not loaded: @rpath/SDL_ttf.framework/Versions/A/SDL_ttf Referenced from: /Users/matthew.davies/Library/Developer/Xcode/DerivedData/MacHub-ambfqujqxbxyiqapaoctvsucpdeu/Build/Products/Release/MacHub.app/Contents/MacOS/MacHub Reason: image not found

我不知道自己还能做什么,这样应用程序可以尽管被嵌入其捆绑找到框架。

有什么想法吗?

回答

5

我发现了网页评论的原因。我需要将“Runpath Search Paths”构建设置设置为“@loader_path /../ Frameworks”,并找到框架。

为什么在应用程序包的Frameworks目录中不自动搜索框架对我来说是一个完整的谜团?你在听Apple吗? :)

+1

如果按照Apple建议的方式构建内容,它最终将首先寻找'@loader_path /../ Frameworks/SDL.framework',因此您不需要在搜索路径中使用它。这是一个更安全的解决方案,因为它可以保证您的应用程序不会最终链接到错误版本的框架。如果你不按照他们推荐的方式来做事......那么,你必须学习各种低级细节。 (你可能真的想要的是'install_name_tool',但是你发现自己不知道的可能性很小......) – abarnert

+1

这里真正的问题在于苹果对于非常简单的“入门”使用有很好的文档的框架,以及低层次的细节介绍它是如何工作的,但在两者之间没有太多... – abarnert

+0

在我的项目中,可执行文件正在拾取框架的/ Library/Frameworks和应用程序内容/框架副本,以及警告说图书馆的选择是不确定的(实际上,SDL_Mixer在这个配置中不起作用)。这个技巧也解决了这个问题。 – Justin

相关问题