对某些库使用-all_load但对某些库不使用.all_load

时间:2012-10-01 07:18:19

标签: iphone ios ipad admob ios6

我用于我的应用程序的组件之一要求我使用-all_load作为其链接器标志之一。但是当我添加这个标志时,我从我在我的应用程序中使用的另一个库中收到错误。归档应用程序时,出现以下错误:

  

Apple Mach-O链接器错误   架构armv7s的64个重复符号

这种情况的解决方案是什么?

3 个答案:

答案 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的)。