我已导入框架,用于从后台应用程序发送电子邮件,即SKPSMTPMessageFramework.有人可以建议为什么会出现以下错误
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_SKPSMTPMessage", referenced from:
objc-class-ref in ConfirmController.o
"_kSKPSMTPPartContentTransferEncodingKey", referenced from:
-[ConfirmController sendEmail] in ConfirmController.o
"_kSKPSMTPPartMessageKey", referenced from:
-[ConfirmController sendEmail] in ConfirmController.o
"_kSKPSMTPPartContentTypeKey", referenced from:
-[ConfirmController sendEmail] in ConfirmController.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
采取框架的来源: -
锁定MFMailComposeViewController中的字段
更新:
答:只需将文件夹拖放到项目上,然后单击复制即可.多数民众赞成也选择项目复选框和目标复选框.
我正在尝试将我的parser.m文件添加到我的单元测试(或我的单元测试文件?)的目标中,但我不知道如何.
这是一个页面示例,表明使用目标的必要性:
架构i386的未定义符号"_OBJC_CLASS _ $ _ Appirater"
......这是该页面答案的一部分:
我认为,你只是将文件添加到项目中,而不是目标.单击Project Navigator中的Appirater.m文件,并在File Inspector的Target成员资格中设置目标名称附近的复选框.
我从答案中得不到的是"什么复选框?".另外,我如何知道我的目标名称?我在哪里可以找到"目标会员资格"?
我有一个静态库X,它在C中.我有另一个静态库Y,它在目标C中,其.mm文件引用了库X的功能.现在在单个视图应用程序中我使用了库Y.但是在编译期间它发表错误说
Undefined symbols for architecture i386:
"encode()", referenced from:
_playMediaInternal in libXMedia.a(XMediaInternal.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
上面的编码函数存在于库X中,库Y正在使用它,单视图应用程序使用它.有什么建议 ?我在同一条线上看过其他查询,但没有运气.另一个线程链接
从Apple开发者网站我一直在尝试使用静态库链接.
我已将手机连接到Laptoop并已开始编译.它仍然给我错误.现在我觉得它与链接本身而不是架构有关