命令/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang失败,退出代码为1


77

我正在尝试做一个使用Xcode 4.3中的pdf套件读取pdf的应用程序,但是它给了我以下错误

ld: duplicate symbol _OBJC_METACLASS_$_OverlayManager in /Users/dt4it/Library/Developer/Xcode/DerivedData/MyPdf4-bmkjglhhvneluqcbwpceiqjvdcmq/Build/Intermediates/MyPdf4.build/Debug-iphonesimulator/MyPdf4.build/Objects-normal/i386/OverlayManager-D0866CFD31A05E68.o and /Users/dt4it/Library/Developer/Xcode/DerivedData/MyPdf4-bmkjglhhvneluqcbwpceiqjvdcmq/Build/Intermediates/MyPdf4.build/Debug-iphonesimulator/MyPdf4.build/Objects-normal/i386/OverlayManager-B31AE7412100AF6D.o for architecture i386
Command /Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1

任何帮助,请??


2
难道你#import还是#include一个.m在任何文件的文件?
Christian Schnorr 2012年


有数百个“重复符号”帖子。您做了什么调查?
Max MacLeod

检查“构建阶段”>“编译源”,然后删除红色的源。另外,检查是否有重复的导入语句
2013年

Answers:


95

项目设置>在“目标”下,选择您的项目>构建阶段>打开“编译源”和“复制捆绑资源”。检查是否有任何文件以红色列出。如果是这样,请将其删除。然后清洁并运行。

为我工作。


3
请提供更多信息。如果有“红色的东西”怎么办?这一点都没有帮助...
werdsackjon

2
“红色的东西”表示错误。如果他们在那里,您将不会错过。
ullstrm

2
红色文件可能会出现在编译源或复制包资源中。我已经编辑了答案。
Vineeth

有时您需要将文件添加到项目中,而不是从“编译源”中删除引用。
ULazdins 2014年

1
仅作记录,并非所有红色项目似乎都没有关联!(对我来说,这是Main.storyboard和一些库,仍然是红色的)。我走错了路Build Settings
longi 2014年

36

做一个清洁。 product > clean。终端清除和重新启动对我不起作用,清洁对我来说不起作用。


3
“产品>清洁”不适用于我,但“产品>清洁构建文件夹...”适用。(你看它时,你按住Alt键不放,同时在产品的下拉列表。
阿迪勒·侯赛因

惊人!!谢谢。
Diyaa

太棒了!拯救了我的一天。
萨拉·帕德维卡

14

我遇到了同样的错误,似乎没有人对真正起作用的StackOverflow有任何答案。我的问题是当我尝试复制团队存储库中的项目时。原来,在忽略文件中,所有扩展名为的文件*.pch都从存储库提交中被忽略了。这意味着当我去从仓库中提取项目时,.pch文件丢失了,从而引发了这个错误。

幸运的是,我仍然有该项目的副本,并且能够将.pch文件复制过来,然后就可以进行编译了。

希望这可以帮助?


5

转到目标首选项,“摘要”选项卡,找到“部署目标”并增加它。


2
哪里是?从什么增加到什么?
Esqarrouth,2015年

在项目导航器中,@ Esq选择您的项目(蓝色图标),然后在主窗口中选择目标(那里的选项:项目,目标1,目标2,...)。在主窗口中找到“部署目标”,并将其增加为现代版本(例如8.1)
fnc12


2

我也面临这个问题。而且,我在SO中寻求帮助,而不是使用常识并检查错误消息。

错误消息的最后一部分与您相同。

Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 11

但是我发现上面几行:

In file included from /Users/Ricardo/Documents/XCode/RealEstate-Finder-v1.2/RealEstateFinder/RealEstateFinder/RealEstateFinder-Prefix.pch:26:
/Users/Ricardo/Documents/XCode/RealEstate-Finder-v1.2/RealEstateFinder/RealEstateFinder/Config/Config.h:174:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
http://www.myserver.com/apps/mobile/rest.php?id=12

指向我的Config.h文件。

祝您编码愉快!


我感觉就像一个杯子,一直都在我眼前。谢谢!
Gmeister4 2015年

1

您不小心在实际的OverlayManager类本身中包含了.m文件OverlayManager而不是.h文件!基本上,他的编译器已经知道可以编译.m文件,但是当您#import时,编译器会尝试将其内联包含在同一源文件中,从而生成重复的符号。但是您的情况是唯一的,因为您正在#import实际类的.m文件的.m!它递归地编译您的OverlayManager类。


1

同样的事情发生在我身上,我发现我忘了把“放在末尾

#import "CPDConstants.h

所以与其

#import "CPDConstants.h"

您是说#import“ CPDConstants.m”吗?
Eman87 2013年

1
不,当我忘了在最后加上引号时发生了。
i_duhh_bomb 2013年

1

对我来说,从存储库克隆项目后会出现此错误。有人从项目名称中删除了一个空格(重命名为“ The Project”到“ TheProject”),这导致Build Settings无效路径出现一些错误。

有时读取整个错误日志并不是一个坏主意。


1

尝试此操作-在Xcode左侧(在列表的最顶部)的文件/文件夹列表中,单击项目的名称。查看右侧窗口左侧的“目标”部分。可能列出了两个,第二个是“测试”项目。右键单击该项目,然后选择“删除”。然后尝试再次运行该项目。


1

当安装了两个以上的XCode版本(其中为Ex合并了不同的Swift版本)时,通常会出现此问题。已安装运行Swift 1.2和Swift 2.0的XCode 6.4和XCode 7.3。您错误地尝试为Ex编译具有不正确版本的代码。您在Swift 1.2中的项目,然后尝试使用xcode 7.3进行编译。在这种情况下,驱动器数据会存储有关快速版本的信息,但是当您尝试使用正确的XCode编译代码时,会出错。解决这个问题

  1. 删除驱动器的数据
    一个。在Xcode中选择首选项

在此处输入图片说明

  1. 偏好设置打开后,单击“位置”选项卡,然后单击“驱动数据”路径前面的箭头。它将打开驱动器数据文件夹

在此处输入图片说明

  1. 退出Xcode
  2. 删除所有驱动器数据。
  3. 重新启动项目中正确的XCode错误已修复!!!!!!

0

这里要考虑的是* .pch文件。如果要从外部库执行包含操作,则必须确保在#ifdef OBJC之后和#endif之前执行包含操作。如果尝试在此条件之外进行包含,则可能是导致编译器错误的原因。


0

如果在使用git的团队中发生了这种情况。其中一个小组成员从外部来源添加了一个类,但没有将其复制到repo目录中。本地版本编译良好,但持续集成失败并出现此错误。

重新导入文件并将它们添加到版本控制下的目录中可以修复该问题。


0

我也有这个错误。但是就我而言,我确定我会成为一个人,因为该应用程序在iPhone模拟器上崩溃后,我在按Delete键时意外删除了main.m。

崩溃后,Xcode显示main.m文件,当我点击Delete时,我不小心从项目中删除了main.m文件,因为突出显示文件名而不是详细代码时很容易视图。

Main.m通常位于项目文件管理器中名为支持文件的组或文件夹中。直到它无法生成并下次运行时,我才注意到这件事发生,然后我不得不更仔细地重新阅读错误消息,并看到它说main.m丢失了。

谢谢大家的投入,但以防万一有人在我的位置检查是否有红色文件名显示丢失的文件,如果有,请从备份中恢复。


0

将丢失的文件(Xcode-> target-> Build Phases-> compiled sources中的红色文件)添加到目标文件夹为我解决了此问题。


0

我的问题是,在“构建阶段”->“编译源”下,我为文件添加了一个编译器标志,但拼写错误。应该是:

-fno-obj-arc

表示此文件不使用ARC。


0

可能对某人有用:从项目中删除多个文件后,我遇到了相同的错误。在git仓库中提交删除后,此错误消失了...



0

我的情况是通过以下方式解决的:

转到“构建阶段”并检查“编译源文件”,检查是否有重复文件,只需保留其中一个即可。


0

在我的情况下,这是Swift Flag目标的“构建设置”>“其他Swift标志”内的重复条目。我有两个-Xfrontend条目。


0

就我而言

构建阶段->检查“编译源文件” ->删除xcode说“找不到“ xxx.swift”的xxx.swift文件


-1

这发生在我身上,我花了一个小时才找到它。以我为例,我打得太快了,做了:

[seld method];

代替:

[self method];

认真!我不知道为什么它没有以一种更加可识别的方式抓住这一点。但这当然是在寻找一个叫做“ seld”的类。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.