美文网首页
iOS - linker command failed with

iOS - linker command failed with

作者: PatrickChina | 来源:发表于2016-10-12 11:14 被阅读0次

    duplicate symbol XXXX in:

    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    ld: 7 duplicate symbols for architecture arm64

    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    对于这个错误,大多数原因在于重复引用。当然,一般自己建的类不会出现重复的,但是检查一下引用的第三方类库会不会有重复的。除了这些肉眼可见的错误之外还有一些表面上看不到的错误:

    我之前遇到一个错误,后来发现是定义了const int a = 1;导致的,具体是这样的

    在A类的.h文件中定义了const int a = 1;在B类引用了A类(#import"A.h"),然后在B类中视同了A类里面定义的a,结果编译就出错了。原因是const是常量,所以每次引用A类的时候它就会被引用一次,这样在A.m和B.h中引用了两次A.h,导致编译器认为A.h中的a引用了两次,就报错了duplicate symbol _a in:的错误。

    解决方式是在const前面加static修饰,static const int a = 1;这样定义了之后,a只会被引用一次,就不会报错了。

    相关文章

      网友评论

          本文标题:iOS - linker command failed with

          本文链接:https://www.haomeiwen.com/subject/ynhiyttx.html