坑爹的 ld: symbol(s) not found for architecture armv7

前两天好好的程序在Xcode 8 4s(8.4)真机的时候遇到上图错误,但是在5s、6s上都能正常运行,第一反应百度--然后根据百度经验:

如果真机调试就是 undefined symbols for architecture armv7错误!
发生这种错误通常是project.pbxproj这个文件引起的,尤其在多人合作开发的时候,svn提交不规范可能导致project.pbxproj发生错误,导致文件的引用不在project.pbxproj文件中。
xcode项目import文件会根据project.pbxproj来查找,查找不到文件的引用则会有上述的错误。
 
解决方法点击工程,在主界面中点击Build Phases,根据提示信息“XXX”来判断缺少什么文件,一般如果缺少自定义的文件,Complie Sources下没有XXX文件,那么就在Complie Sources中加入该文件。如果缺少类库,则在Link Binary With Libraries中加入该类库。
 
又或者是:

一般真机调试时,如果报armv7错误,一般都是因为armv7指令集是打开的,而之前一些引用库都是使用armv7之前的指令集编译的(当这些引用的外部库使用armv7指令集编译后,就不会出现该问题)

解决办法:

   1. 去掉armv7指令集支持: xcode –> Build Settings –>valid Architectures  去掉armv7

   2. 兼容armv7 : project –> Build Settings,把Build Active Architectures Only 的值设置为YES

呃,让我折腾的不亦乐乎,扣持了大半天还是一样的报错。最后无望的自己开始静下心来仔细看错误信息,发现都是与AF、MJ相关的第三方库类报错,那肯定是跟它俩跑不掉关系了。
通过报错路径搜索发现竟然有两个libAFNetworking.a与两个MJRefresh.a,好吧 .a静态库重复了。估计是之前cocoapods使用问题有关,删掉之后完美运行。所以在编程中遇到错误第一时间还是仔细阅读错误信息,其实已经基本上能锁定错误范围了。

转载于:https://www.cnblogs.com/tiger0-0wang/p/5985379.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值