iOS cocoapods类库引入头文件crash(The `XXX [Debug]` target overrides the `OTHER_LDFLAGS` build setting)

   由于我引入头文件了#import "UITableView+FDTemplateLayoutCell.h" 还一直报下面的crash:

 -[UITableView fd_heightForCellWithIdentifier:cacheByIndexPath:configuration:]: unrecognized selector sent to instance 

  我就纳闷了,然后突然发现CocoaPods报了下面的错;

1
2
3
4
5
6
7
[!] The `YYW [Debug]` target overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Target Support Files/Pods/Pods.debug.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The `YYW [Release]` target overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Target Support Files/Pods/Pods.release.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

然后才发现原来Xcode的Other Linker Flags 配置出错了;

于是好好了解了一下

链接器(Other Linker Flags)

首先,要说明一下Other Linker Flags到底是用来干嘛的。说白了,就是ld命令除了默认参数外的其他参数。ld命令实现的是链接器的工作,详细说明可以在终端man ld查看。

如果有人不清楚链接器是什么东西的话,我可以作个简单的说明。

一个程序从简单易读的代码到可执行文件往往要经历以下步骤:

源代码 > 预处理器 > 编译器 > 汇编器 > 机器码 > 链接器 > 可执行文件

源文件经过一系列处理以后,会生成对应的.obj文件,然后一个项目必然会有许多.obj文件,并且这些文件之间会有各种各样的联系,例如函数调用。链接器做的事就是把这些目标文件和所用的一些库链接在一起形成一个完整的可执行文件。 如果想详细了解,这里不描述了,点击传送 关于Xcode的Other Linker Flags;

解决办法:

  • 选择程序 xxx -> TARGETS -> Build Settings
  • 找到 Other Linker Flags 如果里面有配置参数先删除,添加 $(inherited)
  • 然后执行 pod update --verbose --no-repo-update
本文部分内容转自CocoaPods 集成问题总结;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值