首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用私有dylib/framework构建Cocoa应用包

使用私有dylib/framework构建Cocoa应用包
EN

Stack Overflow用户
提问于 2011-11-12 12:44:09
回答 1查看 5.7K关注 0票数 11

我使用Xcode4构建了一个带有私有dylib/framework的可可应用程序。

在我的开发Mac中,我将dylib放在/usr/local/lib目录中,并将其拖到项目中。

这个应用程序在我的电脑上编译并运行得很好。

为了将此应用程序分发到其他Mac,我创建了一个复制文件构建阶段,并指定“将dylib复制到框架目录”。

应用程序构建成功,我确实看到dylib被复制到应用程序包中的Frameworks目录。

问题是,当我在另一个没有安装dylib的普通Mac上运行这个应用程序时。我收到一个错误,说:

代码语言:javascript
复制
dyld: Library not loaded: /usr/local/lib/mylib.dylib
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-12 15:57:51

问题来自于您将框架复制到应用程序包中的事实,因此它可以在如下位置获得:

代码语言:javascript
复制
 <you_app_path>/Contents/Frameworks

但是您尝试从/usr/local/lib加载它,因为它在您的部署机器上不可用。来自Apple Framework Programming Guide

要将框架嵌入到应用程序中,必须执行以下几个步骤:

您必须配置应用程序目标的构建阶段,才能将框架放在正确的位置。

您必须配置框架目标的安装目录,该目录将告诉框架它将位于何处。

您必须配置应用程序目标,使其引用其安装目录中的框架。

现在,您说构建阶段是ok的;我还假设您正确地发送了应用程序目标构建设置。剩下的就是配置框架目标的安装目录。

如果您不是自己构建框架,您应该能够通过更改框架安装路径来修复此问题,以便相对于加载器(您的应用程序)进行定义,如下所示:@loader_path/../Frameworks/ (或@executable_path/../Frameworks)。您可以通过install_name_tool来完成此操作。

如果你自己编译这个私有框架,你可以在Xcode构建设置中定义它的安装位置。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8102609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档