25

我在编译时出错。似乎很奇怪。它用作详细视图应用程序,但使用单个视图似乎不起作用。这是错误详细信息:

   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)
4

11 回答 11

57

尝试以下步骤:

  1. 在 XCode 中打开您的项目。

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

  3. 现在从 XCode 的右侧面板中选择 Target。

  4. 从右侧面板的顶部选择构建阶段。(这里的其他选项将是构建设置,构建规则)

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

  6. 根据您的错误,似乎 RssXmlParser 不存在,添加并再次编译

它现在可以正常工作了。

于 2012-07-19T05:57:34.067 回答
27

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

xcodebuild -详细

查看详细的错误并且仅仅阅读错误会帮助很多时间

于 2017-01-14T01:41:09.467 回答
13

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

于 2015-03-05T19:13:26.683 回答
7

产品->清洁然后产​​品->运行:)

于 2016-06-05T08:35:26.410 回答
2

就我而言,我错误地创建了一个新的UIViewwith .hand .cfiles 子类,而不是.hand .mfiles。更改扩展名很容易,但我没想到要更改.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

链接器错误已修复。

于 2014-04-21T23:38:57.383 回答
0

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

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

于 2013-04-10T14:33:07.277 回答
0

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

从 XCODE 5.0 开始,只需退出并重新启动,如果您单击左侧窗格中的黄色警告,xcode 应该会识别并修复它

于 2013-12-11T19:30:20.030 回答
0

我在 Xcode 6.4 上也发生了类似的错误。看起来像一个 Xcode 错误。

我的解决方法是转到导致错误的“.o”文件,取消选中并重新检查您需要的目标成员资格。

于 2015-07-15T15:12:25.663 回答
0

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

于 2017-04-13T13:00:58.160 回答
0

我认为您可能正在尝试在一个项目中创建两个不同的 .C 文件(带有 main 函数)。C只允许你每个项目有一个主入口。

于 2016-12-18T12:50:09.867 回答
0

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

产品 > 清理构建文件夹

按“清理构建文件夹”并等待它构建并运行。它应该解决构建文件中的任何错误。

于 2017-05-03T09:44:50.453 回答