我在编译时遇到错误。似乎很奇怪。它作为详细视图应用程序工作,但使用单一视图似乎不起作用。 这是错误细节:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_RssArticle", referenced from:
objc-class-ref in RssXmlParser.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
答案 0 :(得分:57)
尝试以下步骤:
在XCode中打开您的项目。
在XCode的左侧窗口/面板中,单击顶部的项目名称。
现在从XCode的右侧面板中选择Target。
从右侧面板的顶部选择Build Phases。 (此处其他选项将是“构建设置”,“构建规则”)
在同一个面板中打开“编译源”,这里检查:是否列出了所有文件(.m
)?如果不是所有文件都单击(+)登录底部以添加(.m
)不在列表中的文件
根据您的错误,似乎RssXmlParser不存在,添加此项并再次编译
它现在可以正常工作。
答案 1 :(得分:26)
看不到有人建议去终端并转到项目所在的目录并运行
xcodebuild -verbose
查看详细错误,只是阅读错误有助于很多时间
答案 2 :(得分:13)
我意识到我必须使用.xcworkspace文件而不是.xcodeproj文件。
答案 3 :(得分:7)
产品 - >然后清洁产品 - >运行:))
答案 4 :(得分:2)
就我而言,我错误地创建了UIView
的新子类,其中包含.h
和.c
个文件,而不是.h
和.m
个文件。更改扩展程序很简单,但我没有考虑更改.m
文件的内容。所以我的.h
文件有
#ifndef My_Project_MPMyView_h
#define My_Project_MPMyView_h
#import <UIKit/UIKit.h>
@interface MPMyView : UIView
@end
#endif
我的.m
个文件错误地
#include <stdio.h>
当我将.m
文件更改为
@interface MPMyView : UIView
@end
@implementation MPMyView
@end
链接器错误已修复。
答案 5 :(得分:0)
我解决了同样的问题,因为我将组件创建为单独的项目。将文件夹添加到主项目后,我忘记从导入的组件组目录中删除.plist,.string和extra main.m文件。
删除这些解决了我的问题,因为该应用显然正在构建冲突的构建命令......
答案 6 :(得分:0)
由于文件名重复,我遇到了这个错误(我通过编辑器菜单在核心数据中自动创建了NSManagedObjectContext子类)。
从XCODE 5.0开始,只需退出并重新启动,xcode就会识别出来并在您点击左侧窗格中的黄色警告时为您修复
答案 7 :(得分:0)
Xcode 6.4上发生了类似的错误。看起来像Xcode错误。
我的解决方法是转到导致错误的“.o”文件,取消选中并重新检查您需要的目标成员资格。
答案 8 :(得分:0)
我认为您可能正在尝试在一个项目中创建两个不同的.C文件(带有main函数)。 C只允许你在每个项目中都有一个主入口。
答案 9 :(得分:0)
我不知道它是如何工作的。但我只是关闭了xcode并通过单击xcworkspace文件再次打开并为我工作。你可能希望这可以解决你的问题,谢谢你。
答案 10 :(得分:0)
按住alt。 在顶部工具栏上转到
产品&gt;清理构建文件夹
按&#34;清理构建文件夹&#34;并等待它建立和运行。 它应该解决构建文件中的任何错误。