1

我创建了一个静态库,它使用 AFNetworking 作为与后端通信的关键角色。在测试时,一切正常,但是当我尝试通过再次导入在测试应用程序上使用 AFNetworking 时,我得到一堆重复符号错误

duplicate symbol _OBJC_CLASS_$_AFURLSessionManager in:
    (AFURLSessionManager.o)
    i386/AFURLSessionManager.o
duplicate symbol _OBJC_METACLASS_$_AFURLSessionManager in:

(AFURLSessionManager.o)
i386/AFURLSessionManager.o

ld: 205 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我试图通过添加 -force_load 选项来强制加载库

force_load $(SOURCE_ROOT)/testLib.a

在其他链接器标志中而不是 -ObjC 但它也没有帮助我。

我需要做什么才能在没有任何 hacky 东西的情况下使用它?

我在这里找到了这个解决方案

http://atastypixel.com/blog/avoiding-duplicate-symbol-issues-when-using-common-utilities-within-a-static-library/

但是真的不实用

4

0 回答 0