ios - monotouch 库和我使用的一些第 3 方库中的重复符号

标签 ios objective-c xamarin.ios static-libraries

我正在使用 Monotouch 开发 iPhone 应用程序。在我的应用程序中,我必须使用第三方提供的静态库。这个库用于 Xcode,用 Objective-C 编写。我使用绑定(bind)项目模板将它与 Monotouch 绑定(bind)在一起。当我将生成的 dll 添加到我的项目时,它可以正常编译,但是当我使用库中的类时,它无法编译并出现以下错误:

Duplicate symbol _DeleteCriticalSection

那我该怎么办呢?有没有办法消除冲突? 提前谢谢你。

最佳答案

我在 FAT 库中看到过类似的情况,其中一些文件被复制,导致对象重复。您可以尝试查看这是否是同一问题,例如如果您的库名为 mystaticlibrary.a

$ nm mystaticlibrary.a | grep DeleteCriticalSection

现在,如果您有一个 FAT 库(不止一种架构),那么多次出现该符号是正常的。要查看是否是这种情况,请执行以下操作:

$ file mystaticlibrary.a

您应该有每个体系结构的符号。如果您看到更多符号(例如 3x DeleteCriticalSection 但只有 2 个 arch),那么您遇到了类似的问题。

修复(如果是同一个问题)是拆分 FAT 库(lipo 工具),然后是每个体系结构特定的库,然后重新合并所有内容(arch 然后是 FAT)。

您最好的办法可能是联系您的库供应商并向他索要一个固定的库(构建过程中可能出了点问题)。将上述命令输出提供给他们,他们很可能会找出问题所在。

关于ios - monotouch 库和我使用的一些第 3 方库中的重复符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14546297/

相关文章:

java - 将 AES 加密从 Java 移植到 Objective-C

iphone - 如何在 iPhone 的 monotouch 中创建 SQLite 数据库?

xamarin.ios - 如何将带有值 [PSPDFAnnotationParser class]/[MyCustomAnnotationParser class] 的 NSDictionary() 转换为 MonoTouch?

iphone - 是否可以从货币代码中导出货币符号?

c# - 将 cocoapods 与 xamarin 一起使用

ios - 向我的临时证书添加推送通知是否会破坏当前用户的应用程序?

iphone - UIButton - 编程创建问题

objective-c - 当 ViewController 从 UIStoryboard 实例化时,isMemberOfClass 返回 no

ios - UITableViewCell约束

iphone - 如何在不加载整个 View 的情况下重置 UIImageView 中的图像?