最近需要修改以前一位同事留下的项目。
但是pull代码之后编译出现“linker command failed with exit code 1 (use -v to see invocation)”错误:
屏幕快照 2017-02-15 下午3.16.44.png
发现是没有x86_64(64位)的CPU架构。
使用lipo -info .a 去查看静态库支持的CPU架构
但是我的.a文件确实是支持64位的。
然后我去看我本身项目编译的环境:
屏幕快照 2017-02-15 下午3.25.24.png也是没有问题的。
这个也是个坑,这个静态库是公司同事编译的。但是没有把模拟器的编译进来。这还是我发现静态库确实都没有问题。用模拟器,用真机一步步调出来的。关于图中编译环境这几个属性的具体解释可以去我的这篇文章查看。
当然也有可能是第三方库的链接出现问题,这个问题可以去我的这篇文章中查看
在工作的当中还经常会出现“ld: 50 duplicate symbols for architecture armv7”这种问题:
屏幕快照 2017-02-15 下午3.31.07.png这种就是工程里面有两个相同的文件。
1、.m文件相同,可以在提示里面找到对应文件。删掉不需要的即可
2、.a文件重复,删除一个.a文件即可
网友评论