【问题标题】:SKPSMTP Message errors 'Undefined symbols'SKPSMTP 消息错误“未定义的符号”
【发布时间】:2012-07-10 16:43:17
【问题描述】:

我做错了什么?

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

我正在使用来自http://skpsmtpmessage.googlecode.com/svn/trunk/SMTPSender/ 的 SKPSMTPMessage

【问题讨论】:

    标签: objective-c sendmail


    【解决方案1】:

    SKPSMTP 的一个常见问题是忘记在您的项目中添加对CFNetwork.framework 的引用。你加了这个吗?

    【讨论】:

    • 我将 CFNetwork/CFNetwork.h 导入到我的 .h 文件中,但仍然有相同的错误
    • 如达斯汀所说,这一定与您的架构有关...我刚刚将文件添加到一个新项目中,它编译得很好。
    • 我把所有东西都放在了一个新项目中,现在它可以工作了,谢谢。
    【解决方案2】:

    您正在为错误的平台构建。看起来您正在使用适用于 iphone 的库,然后尝试在模拟器中运行。如果您直接在 iOS 设备上运行此代码,它应该可以工作。

    您尝试使用的库中的自述文件会告诉您如何链接该库。 http://skpsmtpmessage.googlecode.com/svn/trunk/SMTPSender/README.txt

    需要告知编译器您正在构建什么 - i386/simulator 或 armv7/iOS 设备。如果您正确链接库,它将使用它应该使用的部分。

    【讨论】:

    • 我刚刚尝试在我公司的 ipad 上运行它,它仍然有同样的错误
    • 我试图摆脱这个家伙在stackoverflow.com/questions/6284599/…987654322@ 上发布的内容
    • iPad 没有 i386 架构 - 它使用 armv7。您一定是在 iPad 上构建错误。
    • 您之前是否在 iOS 设备上构建过应用程序?如果你有,你现在有什么可以从你的设置中工作的吗? iPhone 和 iPad 也具有相同的架构。
    • 我刚刚在 iphone 上尝试了我的另一个应用程序,它可以运行。有没有办法修复架构以运行 armv7?
    【解决方案3】:

    我点击了 Project Navigator 中的 MailSend.m 文件,并在 File Inspector 的 Target members 中设置了目标名称附近的复选框。

    我从下面的链接中找到了这个答案,并几乎一字不差地复制了它。有了这个,我能够继续在我原来的项目中工作。

    Undefined symbols for architecture i386 "_OBJC_CLASS_$_Appirater"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-15
      • 2011-08-24
      • 2018-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多