Rio*_*o J 3 iphone objective-c ipad xcode4
我在我的iPad应用程序中使用了2个第三方库.我不知道这些库的源代码.这些库在两者中都具有相同名称的函数.因为功能名称中的冲突,我得到"Apple Mach - O(id)错误".我无法更改其中的函数名称,因为源代码未知.在构建应用程序时,错误正在发生.
该错误表明:
ld:/ Users/Desktop/untitled文件夹/ Universal/lib/simulator/myLib.a(mem.o)和/ Users/Library/Developer/Xcode/DerivedData/iOS-aqpprpcivvjjadbsutqqmtjsoczk/Build/Intermediates/ios中的重复符号_T_strcpy. build/Debug-iphonesimulator/myApp iPad.build/Objects-normal/i386/pdcrypte2.o for architecture i386 collect2:ld返回1退出状态命令/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-g++- 4.2退出代码1失败
谁能分享一些建议?
你差点搞砸了.原始库的创建者失败了库开发的最基本规则之一:使用库特定前缀预先添加所有导出的符号,以避免命名空间冲突.
您唯一的出路是使用包含名称空间前缀的包装器来包装每个库中的每个函数,将库静态链接到包装器以及strip所有未导出的符号.然后使用包装器库和符号名称.
实际上,如果库是静态的,你可以解决这个问题:如何处理静态链接库之间的符号冲突?
| 归档时间: | 
 | 
| 查看次数: | 5231 次 | 
| 最近记录: |