ios 编译错误--文件连接错误

今日在学习Wattt写的AFNetworking类库,真心佩服这些大神。学了就想着用一下它,于是就新建了工程,将类库直接加在工程里,没成想一运行就报告编译错误,错误如下:

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_AFURLConnectionOperation", referenced from:
      objc-class-ref in ASViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

 

看到这个错误觉得异常的熟悉啊,哦!对了,确实遇见过这样的问题,而且那次解决这个问题的时间很长很长。

其实这个问题很简单,从它的报告上理解就是AFURLConnectionOperation是未定义的标示符,程序构造时找不到这个标示,呵呵,这就简单了我们打开此工程的Build Phase,在compile sources里面将我们自己引入类库的.m文件都加进来,再运行就好了。具体步骤:

单击工程-->Build Phase选项卡-->单击compile sources下的小“+”,选择你加入类库的.m文件。(都加上哦)

 

完成之后将会是如下样子:

问题虽然解决了,那么这是怎么回事呢?我们可以看到在最初的时候compile sources下都是只有你的main.m,appDelegate.m,viewController.m,没有你的类库.m文件,也就是说我们把第三方类库放在程序的文件里,没有真正放在程序里,而Xcode在编译程序时,是需要这些文件的,那么我们就需要把他们引进来,按照上述说法改过之后就会发现编译通过了!

其实,不仅仅是在使用第三方类库时有这种问题,有时候我们自己在工程里新建的文件Xcode也不会加载(我不是很理解为什么),总之下次遇见Undefined symbols for architecture i386知道是文件连接的错误就好解决了。

 

 

posted on 2013-03-27 08:51  雨过晴空  阅读(377)  评论(0编辑  收藏  举报

导航