2009-07-07 50 views
2

我一直在为这个框架错误奋战数日。我已经包含来自iphone3.0sdk的MessageUI框架并导入了头文件(MessageUI/MessageUI.h)iphone .objc_class_name错误

任何人都知道这个错误的含义是什么?

collect2: ld returned 1 exit status 
symbol(s) not found 
[email protected][email protected][email protected] 
".objc_class_name_MFMailComposeViewController", referenced from: 

下面是从生成日志一些输出:

ld warning: in /Users/me/iphone/myApp/MessageUI.framework/MessageUI, missing required architecture i386 in file 
Undefined symbols: 
    ".objc_class_name_MFMailComposeViewController", referenced from: 
     [email protected][email protected][email protected] in myViewController.o 
ld: symbol(s) not found 
collect2: ld returned 1 exit status 

回答

7

你忘了链接到MessageUI.framework或要链接到错误的版本。

这里是添加框架的正确方法:

  1. 双击目标
  2. 选择主选项卡
  3. 由框架部分按加号按钮添加框架

现在你应该能够为模拟器和设备构建。

编辑:

从LD的警告看起来像你复制从模拟器SDK的MessageUI.framework到项目目录。删除它,ld应该找到正确的(当前SDK中的那个)。

+2

在他的情况下,这听起来像是他正在连接设备ARM框架,而不是他在为模拟器构建时的i386模拟器版本。他还应该检查框架上的路径类型是“相对于当前的SDK”。 – 2009-07-07 12:32:53

0

您意外地将iPhone SDK框架复制到您的项目目录(在磁盘上)。打开项目目录(将项目保存在磁盘上的位置)并删除iPhone SDK Framework目录。

重建。