Xcode报错: linker command failed w

作者: SevenKey | 来源:发表于2016-11-27 15:44 被阅读777次

    duplicate symbol是一种常见的链接错误,不像编译错误那样可以直接定位到问题的所在。但是经过一段时间的总结,发现这种错误总是有一些规律可以找的。

    1.出现错误

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

    红色报错

    2.查看错误详情

    点击红色报错,来到详情界面

    进而找到问题关键点:ViewController文件      7 duplicate symbols for architecture arm64

    报错类型:duplicate symbols 报错源地

    3.解决错误

    1、首先排查项目中是否有名字重复的文件;

    结合我的以上的报错情况,查看项目中是否不止一个ViewController文件

    2、检查是否在#import头文件的时候,错把.h写成了.m

    通过Xcode的过滤查询功能,我很很快就修正了错误。

    4.总结

    引用一下他人的总结,人家考虑的情况比较周全,嘿嘿

    1.引入头文件时,由于疏忽,误引入.m文件。这种一般仔细检查一下出现问题的类的源文件就能发现。

    2.同一个类,实现两次,即有两个@implementation 。这种一般会有一个警告,也比较容易发现。

    3.工程文件,同一个类文件被引入了两次,引起这种错误的原因大概有两种:一是多人协作开发时,导致project文件合并冲突;二是同名文件不在同一目录下,添加到工程时造成重复添加。 这种一般在文件视图,用名字过滤器检查一下就发现了。

    4. Targets的Build Phase设置项里,查看Complie Sources这一项,看看出现问题的类是不是有重复的,用文件名过滤也比较容易发现。这种问题一般也是多人协作开发时,project文件冲突导致的。发现这种问题,只要删除就可以了。不过在我解决问题过程中,删除其中一个文件时,重复文件会自动全部删除,所以还需要单独添加一下。

    5.如果我们的工程中引用了第三方的库,而恰好第三方的库里面有一个ClassA,也会出现这种问题。如果不能修改第三方的库代码,只能修改我信自己的代码了。

    附上链接Duplicate Symbol链接错的原因总结和解决方法

    如果感觉我的文章写的好不错,那就不要吝啬你的赞哟,谢谢哈!

    相关文章

      网友评论

        本文标题:Xcode报错: linker command failed w

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