iOS Framework错误使用标志-all_load重复符号

时间:2014-07-15 14:10:38

标签: c++ ios objective-c linker linker-errors

我创建了一个用于包装一些C ++代码的iOS Framework。只要包含我的框架的应用程序未使用此框架,该框架就可以正常工作:

Other Linker Flags: -all_load

如果使用此标志,我会在导入我的框架的应用程序中收到大量重复符号错误:

duplicate symbol _OBJC_IVAR_$_LDRequest._ldProgressBlock in:
<pathToMyFramework>/ldhttpWrapper.framework/ldhttpWrapper(LDRequest-CF8E7CA9FA604178.o)
duplicate symbol _OBJC_CLASS_$_LDRequest in:
<pathToMyFramework>/ldhttpWrapper.framework/ldhttpWrapper(LDRequest-CF8E7CA9FA604178.o)   
duplicate symbol _OBJC_METACLASS_$_LDRequest in:
<pathToMyFramework>/ldhttpWrapper.framework/ldhttpWrapper(LDRequest-CF8E7CA9FA604178.o)

我的所有objective-c类都出现了类似的错误。 我的框架没有导入外部依赖项。所以我排除了导入应用程序存在重复导入的问题。我还可以使用几乎为空的应用程序重现错误。 所以我很想知道问题可能在这里。或者一些关于“-all_load”的一般信息。

1 个答案:

答案 0 :(得分:0)

使用其他链接器标志:-force_load path_to_static_framework_executable_or_static_lib,代替您的每个库。