iOS/KB/编译错误 Undefined symbols for architecture ...

iOS/KB/编译错误

Undefined symbols for architecture ...
“symbol(s) not found for architecture i386 clang: error: linker command failed withsymbol(s) not found for architecture i386 clang: error: 
linker command failed with exit code 1 (use -v to see invocation) ”


示例:
   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
可能原因:
解决参考:

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

多语言混编错误

多语言混编处理不当可能会引起:
Expected * before *: Expected '=',',',';','asm' or '__attribute' before '<' token
LLVM GCC 4.2 Error: Cannot find protocol declaration for 'class'
待补充
可能原因:
文件处理不当(同一个文件混用多种语言的写法,后缀设置不当,如ObjC++文件没用.mm后缀)导致编译器判断语言出错
解决参考:
如果能改好文件的话,那就改正吧。否则可以尝试强制编译器按指定类型编译。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值