我创建了一个用于包装一些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”的一般信息。
答案 0 :(得分:0)
使用其他链接器标志:-force_load path_to_static_framework_executable_or_static_lib,代替您的每个库。