0

我正在尝试创建发送电子邮件的应用程序我使用了 SKPSMTPMessage、NSStream+SKPSMTPExtensions、NSData+Base64Additions、HSK_CFUtilities、Base64Transcoder 等类,但它给了我以下错误

Undefined symbols for architecture i386:
"_OBJC_CLASS_$_SKPSMTPMessage", referenced from:
  objc-class-ref in MFViewController.o
"_kSKPSMTPPartContentTransferEncodingKey", referenced from:
  -[MFViewController sendMail:] in MFViewController.o
"_kSKPSMTPPartContentTypeKey", referenced from:
  -[MFViewController sendMail:] in MFViewController.o
"_kSKPSMTPPartMessageKey", referenced from:
  -[MFViewController sendMail:] in MFViewController.o
"_CFHostCreateWithName", referenced from:
  +[NSStream(SKPSMTPExtensions) getStreamsToHostNamed:port:inputStream:outputStream:] in    NSStream+SKPSMTPExtensions.o
  +[NSStream(SKPSMTPExtensions) getStreamsToHostNamed:port:inputStream:outputStream:] in  SKPSMTPMessage.o
"_CFStreamCreatePairWithSocketToCFHost", referenced from:
  +[NSStream(SKPSMTPExtensions) getStreamsToHostNamed:port:inputStream:outputStream:] in NSStream+SKPSMTPExtensions.o
  +[NSStream(SKPSMTPExtensions) getStreamsToHostNamed:port:inputStream:outputStream:] in SKPSMTPMessage.o
 ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

请记住,我正在使用 Xcode 4.3 ,我该怎么做才能解决这个问题?

添加 CFNetwork 框架和 SystemConfiguration 框架后,错误数从 6 个减少到 4 个,现在是

Undefined symbols for architecture i386:
"_OBJC_CLASS_$_SKPSMTPMessage", referenced from:
  objc-class-ref in MFViewController.o
"_kSKPSMTPPartContentTransferEncodingKey", referenced from:
  -[MFViewController sendMail:] in MFViewController.o
"_kSKPSMTPPartContentTypeKey", referenced from:
  -[MFViewController sendMail:] in MFViewController.o
"_kSKPSMTPPartMessageKey", referenced from:
  -[MFViewController sendMail:] in MFViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
4

2 回答 2

0

此错误消息意味着这些类在您尚未链接到项目的框架中搜索某些对象。在这里你可以找到你需要的框架:CFNetwork 框架。

我希望它有帮助!

编辑

其他 4 个错误可能是由 SKPSMT 类的错误导入引起的。如果这些类作为库下载,您还需要将您的应用程序与该库链接。

于 2012-05-03T18:22:02.967 回答
0

尝试添加以下链接器标志:

OTHER_LDFLAGS = -lz -lxml2 -ltidy -ObjC
于 2012-07-13T09:14:55.373 回答