【发布时间】:2011-10-19 17:34:23
【问题描述】:
我在我的 iPad 应用程序中使用了 2 个第三方库。我不知道这些库的源代码。 这些库在两者中都具有相同名称的函数。因此,由于函数名称冲突,我收到“Apple Mach - O (id) 错误”。我无法更改其中的函数名称,因为源代码未知。在构建应用程序时发生错误。
错误表明:
ld:在 /Users/Desktop/untitled 中重复符号 _T_strcpy 文件夹/Universal/lib/simulator/myLib.a(mem.o) 和 /Users/Library/Developer/Xcode/DerivedData/iOS-aqpprpcivvjjadbsutqqmtjsoczk/Build/Intermediates/ios.build/Debug-iphonesimulator/myApp iPad.build/Objects-normal/i386/pdcrypte2.o 用于 i386 架构 collect2: ld 返回 1 退出状态命令 /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-g++-4.2 退出代码 1 失败
有人可以分享一些建议吗?
【问题讨论】:
-
可以肯定的是,创建这些静态库的人没有遵循正确的设计模式。所有的类都应该有一个特定的前缀以避免像你这样的情况。不要以为你可以做任何事情。
-
可能重复:stackoverflow.com/questions/6925609/…。甚至临时构建文件夹的名称都相同(xxx/iOS-aqpprpcivvjjadbsutqqmtjsoczk/xxx)
-
@Cyprian:可能是一些普通的 C 库,由一些粗心的学生、助理甚至 (sic) 教授编写(这显然是一个大学项目)。跨度>
标签: iphone objective-c ipad xcode4