报错:Undefined symbols for architecture ...

转自:http://beta.wikiversity.org/wiki/Topic:iOS/KB/%E7%BC%96%E8%AF%91%E9%94%99%E8%AF%AF

示例:

   Undefined symbols for architecture armv7:
   "_OBJC_CLASS_$_MFMessageComposeViewController", referenced from:
   l_OBJC_$_CATEGORY_MFMessageComposeViewController_$_BlocksKit in BlocksKit(BlocksKit)

原因:

这是编译器找不到符号定义,通常这意味着某些framework没有加入项目中

解决参考:

解读信息,是因为找不到叫MFMessageComposeViewController的ObjC类。
查找MFMessageComposeViewController的信息,得知其定义在MessageUI.framework中,将其加入到项目中即可


Receiver 'ClassName' for class message is a forward declaration

相似的还有:Receiver type 'ClassName' for instance message is a forward declaration

可能原因:

解决参考:

类是用 @class 方式引用的?尝试在实现部分用 #import 方式引用。


多语言混编错误

多语言混编处理不当可能会引起:

  • Expected * before *: Expected '=',',',';','asm' or '__attribute' before '<' token
  • LLVM GCC 4.2 Error: Cannot find protocol declaration for 'class'
  • 待补充

可能原因:

文件处理不当(同一个文件混用多种语言的写法,后缀设置不当,如ObjC++文件没用.mm后缀)导致编译器判断语言出错

解决参考:

如果能改好文件的话,那就改正吧。否则可以尝试 强制编译器按指定类型编译。(http://beta.wikiversity.org/wiki/Topic:iOS/KB/%E5%BC%BA%E5%88%B6%E7%BC%96%E8%AF%91%E6%96%87%E4%BB%B6%E7%B1%BB%E5%9E%8B)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值