美文网首页
Xcode linker command failed with

Xcode linker command failed with

作者: Superman168 | 来源:发表于2018-04-08 00:07 被阅读0次

    前言

    相信作为 iOS 开发的你,在开发中可能不止一次遇到这个错误,我暂且称之为终极错误,很多时候真是心神交瘁,想死的心都有了,但又有什么办法呢?不解决,问题终究还是那里,我们程序员就是来解决问题的。

    其实这个问题,网上有很多种说法,各种解决方法,大概如下:

      1. 文件或类重复
      1. 错误信息中出现了某个类的名字,去原文件中看看#import了哪些第三方库,把这些库挨个注释排除,找到出错的那个库,然后按照官方提供的步骤重新添加一遍。
        (如果用 Cocoa Pods 不要相信,没有类似问题,百分九十以上的问题就是自己项目代码或文件的问题,如果没有用 Cocoa pods 可以一试,排查一下,这是一个繁琐的过程,需要耐心)
      1. SVN 或 Git 忽略了某些文件,如.o 等文件没能update下来,查看.o文件可能是红色的,可以重新添加或者修改 SVN/git 的忽略设置
      1. 把.a文件删除再重新拖到项目中解决问题
      1. 可能重复添加了文件(也可能没勾选 Copy items if neded 这个选项),建议删除后重新添加
      1. ”Build Settings”->”Enable Bitcode”设置为NO ,因为有些SDK不支持Bitcode
      1. 可能在引用的时候 可能写的是#import "XXXXX.m" ,如果是改为#import "XXXXX.h" (几率很小,即便是有也会在导入的地方报错的)
      1. 可能你导入的SDK只能在真机下才能运行,模拟器会报错!(遇见过)
      1. 一个类中自定义创建的父类没有implementation部分,在此基础上继承的子类就报这样的错误了
      1. 在不同的地方命名了相同的静态变量,不过这个真机调试不报错,模拟器运行的时候报错了。

    我想说的是:

    出现这种错误本质上就是引用的问题,文件或类没有引用上,Xcode 找不到了所以就会报这样的错误,出现这种错误不要盲目的去找,先想可能是那些地方,有针对性的耐心去查找、排查多半是自己代码或文件引用的问题,另外

    1480 duplicate symbols for architecture arm64

    这个错误的数量不用关心,其中可能有出错的类或文件,也可能没有。

    我本次遇到的问题是这样的:(仅供参考,低级错误,不值得一提)

    Xcode 错误截图

    错误信息.png

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

    我来说下我的错误:
    再三核对项目文件类,检查了项目无数次以后,在一个创建的 .h 头文件中找到了罪魁祸首,有许多定义的 const 常量:

    NSString *const IDBSuccess = @"0";
    NSString *const IDBFail = @"-1";
    

    这样在 .h 中编译这个文件是不会报错的,但是就是运行不起来,语法貌似没错误!!为什么呢?相信熟悉 const 的小伙伴都知道,只怪道行太浅只有在 .m 中赋值,没有在 .h 中定义。

    相关文章

      网友评论

          本文标题:Xcode linker command failed with

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