我非常了解动态加载和共享库的概念。虽然我完全理解dlopen()如何用于引用共享库中的符号,但是当我没有静态链接某些内容时,我还没有完全掌握MacOS在幕后所做的事情。在向Xcode添加框架时,我可以选择将其加载到我的项目中,或者我可以向它提供某种形式的符号链接(实际的实现被混淆为易于使用的界面)。
毕竟我似乎需要做的是导入这些框架中提供的头文件和API,我可以轻松地调用它们的符号。有人可以向我解释我在做什么,因为这对我没有意义。
答案 0 :(得分:1)
您所指的表单与框架的实际链接无关。复制与链接选择是指您希望如何在Xcode项目中包含框架,而不是您的应用程序二进制文件。
对于系统框架,除了导入标题之外,您根本不需要做任何事情。
对于自定义框架(您自己的或第三方),当您的应用启动时,框架必须位于加载路径目录中。通常,加载路径将指向应用程序包的Frameworks
(子)目录,因此您必须添加将框架复制到应用程序包的Frameworks
目录的“复制文件”构建阶段。
请务必查看Apple's Framework Programming Guide,尤其是the section on frameworks embedded in your app bundle。