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

1.这个错误是什么意思

构建应用程序有几个阶段,在Xcode的配置里可以看得到:

重点第三个phase,Link Binary With Libraries:链接二进制文件和库,Xcode compile完ources之后,会链接这些库文件,如果连接失败就会报错:error: linker command failed with exit code 1 (use -v to see invocation)

参考: Xcode应用程序构建阶段(Build Phases)分析 http://www.entlib.net/?p=1645

2.这个错误是如何导致的

连接库文件失败的原因有多种,经过分析我们可以得到

(1)找不到对应类库的路径

(2)该类库内部错误


3.解决方案

分不同情况,


(1)在拖入第三方类库的时候没有勾选add to target:

解决方案:target->Build Phase->Link Binary With Libraries->点击"+"添加


(2)因为路径错误导致无法链接到该类库,错误如下:

解决方法: 找到Build Settings里面的 Library Search Paths 修改为正确地路径


(3)真机调试显示第三方类库找不到armv7/armv7s/...导致连接错误:

解决方案:1.终端查看该类库是否支持这些指令集,查看命令: "cd ../该类库的路径" ,然后   "lipo -info 类库名"

2.如果不支持,如果是开源库 可以自己添加重新编译静态库,如果拿不到代码,找该作者...


(4)可定还会出现一些其他的情况,总之,明白错误原因,根据错误信息提示仔细分析,多多尝试总会解决的.


注:还有一些常见错误,一是重复导入,仔细检查过程目录,删掉其中一个就可以了  还有一种引入第三方的时候,有的含有.m文件,如果没有添加到compile sources里面也会导致编译出错.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值