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

来源:互联网 发布:淘宝达人怎么发表状态 编辑:程序博客网 时间:2024/06/16 13:03

关于这个错误做个简单的笔记:

1.可能是库引用出问题,看具体的提示。会显示什么找不到

2.重复引用,比如我这次遇到的:(紫色部分才是我们要关心的)

duplicate symbol _XMPPHelperLoginOrRegister in:

    /Users/wuwenhao/Library/Developer/Xcode/DerivedData/XMPP-giqpyyuvhqbwsshhmndjhkiffcqt/Build/Intermediates/XMPP.build/Debug-iphonesimulator/XMPP.build/Objects-normal/x86_64/WZLoginViewCotroller.o

    /Users/wuwenhao/Library/Developer/Xcode/DerivedData/XMPP-giqpyyuvhqbwsshhmndjhkiffcqt/Build/Intermediates/XMPP.build/Debug-iphonesimulator/XMPP.build/Objects-normal/x86_64/AppDelegate.o

duplicate symbol _XMPPHelperLoginOrRegister in:

    /Users/wuwenhao/Library/Developer/Xcode/DerivedData/XMPP-giqpyyuvhqbwsshhmndjhkiffcqt/Build/Intermediates/XMPP.build/Debug-iphonesimulator/XMPP.build/Objects-normal/x86_64/WZLoginViewCotroller.o

    /Users/wuwenhao/Library/Developer/Xcode/DerivedData/XMPP-giqpyyuvhqbwsshhmndjhkiffcqt/Build/Intermediates/XMPP.build/Debug-iphonesimulator/XMPP.build/Objects-normal/x86_64/XMPPHelper.o

ld: 2 duplicate symbols for architecture x86_64

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

看上面的提示,就是重复了。那就去看看XMPPHelperLoginOrRegister这个类型。去工程里面搜索一下,看在哪里重复引用了,结果我只发现在XMPPHelper里面声明和调用了一个枚举,但是其它类引用了XMPPHelper这个类。再看看我的枚举声明:

NS_ENUM(NSInteger , XMPPHelperLoginOrRegister) {

    XMPPHelperLogin = 0,

    XMPPHelperRegister,

};

问题来了,这个枚举并没有声明为一个类型,所以造成了引用问题。改成

typdef  NS_ENUM(NSInteger , XMPPHelperLoginOrRegister) {

    XMPPHelperLogin = 0,

    XMPPHelperRegister,

};就好了。

3.在网上有朋友说删除单元测试就可以了,这种情况我没遇到过,不过也可以做个备份。怎么删除单元测试:删除单元测试

4.还有网友说可能是Unity 5.1和Xcode的Build设定问题,这个我也没有遇到过,也做个备份:链接


不过具体的原因还是多看看错误提示,别看那个提示很长,但是大部分是文件的路径很长。所以简化一下也是很简单的。

小技巧:Xcode右下角那个{}图标的功能很好,值得关心。


1 0
原创粉丝点击