我的项目链接到来自第三方的2个静态库,其中一个在链接器选项中需要-ObjC
标志。目标构建返回以下错误:
ld: 49 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
如果我删除-ObjC
链接器标志,那么构建过程将成功完成。但是,通过执行此操作,应用程序运行时将抛出以下异常:
2016-01-26 16:05:28.239 testapp[355:167475] -[NSConcreteMutableData SR_stringByBase64Encoding]: unrecognized selector sent to instance 0x14696110
2016-01-26 16:05:28.240 testapp[355:167475] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSConcreteMutableData SR_stringByBase64Encoding]: unrecognized selector sent to instance 0x14696110'
*** First throw call stack:
(0x22c9d68b 0x34486e17 0x22ca2ea5 0x22ca0ad9 0x22bd1258 0xe36e9 0xe6e4d 0x2ead87 0x2f5653 0x2edfe9 0x2f6b35 0x2f698f 0x34d42b45 0x34d42734)
libc++abi.dylib: terminating with uncaught exception of type NSException
我的问题是:是否有任何临时构建选项可以跳过重复的符号检查?或者我是否必须通知图书馆老板修理他们的图书馆?
答案 0 :(得分:0)
使用-force_load <path/to/lib>
代替-ObjC
作为链接器标志,项目已成功构建且没有错误。