Ios 链接器命令错误:“未找到体系结构i386的ld:symbol”

Ios 链接器命令错误:“未找到体系结构i386的ld:symbol”,ios,xcode,compiler-errors,mach-o,Ios,Xcode,Compiler Errors,Mach O,我在编译时出错了。看起来很奇怪。它作为详细视图应用程序工作,但使用单一视图似乎不起作用。 以下是错误详细信息: 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

我在编译时出错了。看起来很奇怪。它作为详细视图应用程序工作,但使用单一视图似乎不起作用。 以下是错误详细信息:

   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)
尝试以下步骤:

在XCode中打开您的项目

在XCode的左侧窗口/面板中,单击顶部的项目名称

现在从XCode的右侧面板中选择目标

从右面板顶部选择构建阶段。这里的其他选项将是生成设置、生成规则

在同一面板中打开编译源代码,检查:是否列出了所有文件.m?如果不是所有文件,请单击底部的+登录以添加列表中不存在的.m文件

根据您的错误,似乎RssXmlParser不在那里,添加此项并再次编译


现在它可以正常工作了。

我解决了同样的问题,因为我将组件作为单独的项目创建。将文件夹添加到主项目后,我忘记从导入的组件组目录中删除.plist、.string和额外的main.m文件


删除这些解决了我的问题,因为应用程序显然得到了冲突的构建命令…

我遇到了这个错误,因为我通过编辑器菜单在核心数据中自动创建了重复的文件名NSManagedObjectContext子类


从XCODE 5.0开始,只要退出并重新启动,XCODE就会识别出这一点,如果您单击左侧窗格中的黄色警告,XCODE就会为您修复它。在我的例子中,我错误地创建了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文件更改为


链接器错误已修复。

我意识到我必须使用.xcworkspace文件而不是.xcodeproj文件。

类似的错误刚刚在Xcode 6.4上发生。似乎是一个Xcode错误


我的修复方法是转到导致错误的.o文件,取消选中并重新检查所需的目标成员身份。

产品->清理然后产品->运行:

我认为可能是您试图在一个项目中创建两个不同的.C文件,其中包含主功能。C只允许每个项目有一个主入口。

没有看到任何人建议进入终端,进入项目所在的目录并运行

xcodebuild-详细


查看详细错误并读取错误通常会有所帮助

我不知道它是如何工作的。但我只是关闭了xcode,然后通过单击xcworkspace文件再次打开,并为我工作。您可以尝试,希望这能解决您的问题。谢谢。

按住alt键。 在顶部工具栏上,转到

产品>清理生成文件夹

按clean build folder并等待它生成并运行。
它应该解决生成文件中的任何错误。

这适用于哪个版本的X代码?我似乎找不到右侧的目标…@iOSTest我遇到了同样的问题。我想知道为什么会发生这种情况。同时检查您到底是如何子类化您的类的!对于我来说,在Xcode 8.3.3中,在Build Phases>Compile Sources下,我有一些额外的.m文件,这些文件与我正在处理的项目没有关联,只是删除了它们以解决链接器命令失败和退出代码1错误这对我来说很好,但我也想知道为什么。有什么解释吗?你应该使用.xcworkspace的一个原因是当你使用pods时。这不是一个确切的答案,但这个+选择的答案仍然帮助我解决了我的问题!就我个人而言,我有两个plugins.m文件在.m文件列表中具有相同的用途。我移除了一个,然后重新构建,这就解决了问题。
#include <stdio.h>
@interface MPMyView : UIView

@end

@implementation MPMyView

@end