我用于我的应用程序的组件之一要求我使用-all_load作为其链接器标志之一。但是当我添加这个标志时,我从我在我的应用程序中使用的另一个库中收到错误。归档应用程序时,出现以下错误:
Apple Mach-O链接器错误 架构armv7s的64个重复符号
这种情况的解决方案是什么?
答案 0 :(得分:1)
删除该标志并尝试不使用它。如果仍然无法工作,请尝试使用每个库的--force-load。
答案 1 :(得分:1)
不要尝试在没有加载标志的情况下运行代码。标志的原因是处理Apple链接器问题,其中ObjectiveC库中的类别未得到正确处理。 尝试切换到:
-force_load $(BUILD_PRODUCTS_DIR)/libfoo.a
编辑:我已经阅读但未经验证,从Xcode 4.6开始,这已经不再需要了。
答案 2 :(得分:0)
David H的答案基本上是正确的,但代码示例中有两个拼写错误。对于需要特殊加载行为的库,链接器参数应如下所示:
-force_load $(BUILT_PRODUCTS_DIR)/libfoo.a
注意:我在我的项目中遇到了类似的情况(使用Xcode 4.6.1),但当指定-all_load
和-force_load
时,应用仍然无法链接(同时针对iOS5和iOS6的)。