1

我正在为Quartz Composer开发几个插件,它们都链接到在 bundles frameworks 文件夹中为每个插件复制的同一个自定义静态库。插件可以单独使用,所以我必须在每个插件中分发库。

一切顺利,除了isMemberOfClassisKindOfClass方法。我在这里读到导入两次相同的类可能是问题的根源。

我在编译时没有错误。

假设我有 2 个插件 (NSBundles),其中包含 lib XCode 项目并在链接到它之前对其进行编译。他们都将 lib 复制到其资源文件夹中。然后,他们都从该库中实例化一个自定义hOzPolygon2D类。

第一个插件使用 isMemberOfClass 方法返回 true 以测试hOzPolygon2D对象。第二个返回假。isKindOfCLass 方法返回相同的“错误”。

在我的情况下,我无法想象一个解决方案。我真的不是编译专业人士,非常感谢一些帮助。

4

1 回答 1

0

您应该单独分发静态库(可能作为它自己的框架)。从问题标题中,我假设您从链接器中看到重复的符号错误。如果您将同一个静态库静态链接到多个其他库,然后尝试将应用程序链接到多个这些库,您一定会看到这些重复符号问题。我实际上并没有在框架上尝试过这个,但是我通过将 iOS 应用程序与相互依赖的静态库链接起来知道这个问题。

您不必担心模块可以单独使用。只要确保您的用户也可以获得基本库。这是正常情况。例如 AppKit 和 UIKit 依赖于 Foundation,但它们实际上都不包含 Foundation 的副本

于 2013-03-16T00:52:01.337 回答