-->

建立与失败:LD:重复的符号_OBJC_CLASS _ $ _ Algebra5FirstViewC

2019-05-13 19:21发布

运行通过iPhone模拟器我的应用程序时,我突然收到此错误:

铛:错误:连接器命令,退出代码1(使用-v看调用)失败:

LD:重复的符号_OBJC_CLASS _ $ _ Algebra5FirstViewController在... / Algebra5-anwcuftojtxtgkfootneeeqhwztj /编译/中间体/ Algebra5.build /调试-iphonesimulator / Algebra5.build /目标正常/ I386 / ExercisesViewController.o和... / Algebra5-anwcuftojtxtgkfootneeeqhwztj /构建/中间体/ Algebra5.build /调试-iphonesimulator /小六会考Algebra5.build/Objects-normal/i386/PSLE_Algebra5FirstViewController.o为i386硬件架构

这是什么一回事呢?

Answer 1:

它看起来像类Algebra5FirstViewController是编译多个时间。

你能确保.M和.mm在Xcode中的项目源代码只包含一次? 您还可以通过在编译日志检查证实了这一点(最后一个图标在正确的,旁边的断点图标),并查看确认它是只编译一次。

另外,如果这个类是针对链接库的一部分,你有相同名称的类,你可以有相同的错误。

最后,你可以尝试一个干净和重建,以防万一旧的对象文件仍然存在,并且有一些垃圾在编译的文件。 以防万一...

编辑

我也注意到,第二参考为ExercisesViewController在文件中提出。 也许有东西在这个文件。 要么你#imported的Algebra5FirstViewController文件而不是.H,或ExercisesViewController具有@implementation(Algebra5FirstViewController),而不是@implementation(ExercisesViewController),或有一些垃圾这个文件,将用干净的重建清洗。



Answer 2:

如果相同的.m文件在“构建阶段”多次引用您的目标的“编译源”部分中,可以发生。 删除重复的条目,你应该罚款。



Answer 3:

也有通过声明这个问题const * NSString头文件(错误),而不是执行文件(正确)



Answer 4:

我得到了这个问题,因为我不小心进口的.m而不是.H。 希望看完这可以节省有人用同样的问题一段时间。



Answer 5:

我有同样的问题。 得到它解决了!

如果导入任何文件到项目,然后检查.M(主)文件相同确实存在于目标(项目名称) - >构建阶段 - >编译源代码。

如果文件不存在,那么使用包括它(+)添加按钮上显示。 此外,如果重复的文件存在(如果有的话),然后将其删除。

现在,按CMD + Shift + K键清理项目。 新建设不应该显示此错误。



Answer 6:

从另一个项目添加文件时,像@paiego解释我有一个类似的错误。 我的错误是,我没有检查“ 添加到目标 ”。 如上所述,我删除了引用和再次添加的文件,但这次选中“ 添加到目标 ”。



Answer 7:

我得到类似的错误,我得到它解决了这种方式 。

尝试设置建立有效体系结构只为NO“荚”项目和应用程式的目标



Answer 8:

在一个案例中,我拖着一个新的类.H和.M到项目时看到这个错误。 我发现的唯一的解决办法是删除这些文件的引用,然后添加回通过项目菜单。



Answer 9:

在TableViewController导入ViewController.m当我遇到它。 尝试删除“#进口‘ViewController.m’”如果它退出。 希望这有助于!



Answer 10:

“链接器命令退出码1(使用-v看看调用)失败” - 运行在iPhone上的PhoneGap应用程序时,我得到这个错误。 我改变了建有源体系只到是它工作得很好。



Answer 11:

看来,对男,我拖着文件添加到项目后,没有工作,点击文件“文件添加到项目”。 两人都是不正确的做法。 只需将它变成容纳其他的.h和.m文件的项目文件夹(在取景器)。



Answer 12:

一旦我得到

18 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1

对我来说,这是由于,我在我的开关情况下使用“常量NSInteger的”。

我所做的是改变常量NSInteger的以枚举,并替换枚举值作为基准。

这种固定的错误我。



Answer 13:

出现这种情况要么,一些文件被“编译源”部分缺失或重复的条目中发现一些文件(S)。 就我而言,我不得不重复的条目为两个文件,我删除了每个文件的一个条目,这解决了我的问题。 希望这可以帮助。



Answer 14:

我发现这个文章 ,对我提供了解决方案。 它涉及到的Xcode 7中的任何普通块中的默认值是是不是没有以前的版本。

这是从文章报价:

这个问题似乎是“苹果LLVM 6.1 - 代码生成”中的“无公共块”,在生成设置车窗玻璃部分被设置为Yes,在Xcode的最新版本。

这引起了什么地方了被列入我的编译源代码一类是通过在另一个源文件(appDelegate.m)一个#进口引用我会形容为循环引用。 这导致重复块在原来的基类中声明的变量。

更改值没有立即启用我的应用程序编译和解决我的问题。



Answer 15:

我张贴了新的答案,这是因为我遇到了这个错误,不得不使用不同的解决方案,我觉得是具体到iOS 9。

我必须明确禁用启用位码的生成设置,这是在更新自动开启。

参考答案: 在iOS版9新的警告



Answer 16:

[XCODE 7.1 UPDATE]

第一个选项奏效:

我改变了Deployment Target从7.1到8.1,并错误就走开了。

希望可以帮助别人。

UPDATE(2天):第二次我回到这里2天。

第2天我就开始除了这个恼人的错误,以获得更多的错误。 问题是有冲突的文件,该文件的Xcode不承认。 我用下面的帮助链接:

  1. “_OBJC_CLASS _ $ _ viewsampleViewController”,从引用:

  2. “LD:警告:目录未找到选项”

最终:

  1. “_OBJC_CLASS _ $ _ viewsampleViewController”,从引用:

我删除一切从FrameWork Search Paths + Compile Resources + Run Script Phases +舱体,然后再重新安装他们最终找到成功。

在我的大小(第2天),这个问题非常有冲突的文件或文件的Xcode不承认文件的问题。

但最终,除去一切(以上和链接提到),清洗了很多次,并重新安装豆荚/框架/运行脚本阶段帮助。

真希望这可以帮助别人。



Answer 17:

在OSX 10.7.5上运行的Xcode 4.6.3能够通过改变架构从$构建机器的本地架构(NATIVE_ARCH_ACTUAL)来修复这个错误。



Answer 18:

我通过(不小心)导入这两种h和.m文件到同级收到此一次。



Answer 19:

在实施无添加了必要的框架子类(没有的MPMoviePlayerController在MediaPlayer框架,在这个例子中)我得到这个错误



Answer 20:

与Bolts.framework工作时,我得到了同样的问题。 事实证明,当螺栓被损坏,没有再进口量将解决这个问题。 我不得不回到原来的下载文件,并完全从头开始重新导入。 这个固定它的时候了。 也正是这样一个奇怪的问题,它花了我永远看着办吧...希望这个提示将不遗余力一些你从相同的挫折:)



Answer 21:

这发生了我,当我叫一个UILabel引用和一个int同样的事情,当我键入它我没有得到一个错误,只有当我试图运行它,所以我不知道,这是问题,但如果你碰到这样一个标签,该标签是“分数”,你叫它分数,并命名为int这是得分的得分也再出现此问题。



Answer 22:

如果你有一个丢失的库或文件可能会出现在这个问题上的变化。 检查有没有在您的Project Explorer中任何丢失的文件:他们会写在红色,如果Xcode中无法找到他们。



Answer 23:

“链接二进制与图书馆”有旧的项目名称荚库。 取出后固定。

  1. 项目清单
  2. 项目
  3. 构建阶段
  4. 链接二进制与图书馆
  5. 删除过时的库。


Answer 24:

我有同样的问题,有一个图书馆,我尝试了所有在这里列出,并没有任何帮助的答案。

最后我简单地去除链接二进制与图书馆库中 ,然后重新添加它 ,它工作得很好。



Answer 25:

解决这个问题的唯一(和经久不衰的)方式是建立在命令行测试:

xcodebuild -workspace MyProject.xcworkspace/ -scheme MyScheme -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 7,OS=10.3.1' test

所以,在这一点上,你的编译一定会失败,但你会看到所有的连接问题。 就我而言,我有几个问题,如:

  • LD:框架“富”未找到
    为了解决这个问题,你需要在你的目标,BuildSettings-> Linking-> OtherLinkerFlags和删除“富”的框架。
  • 使用未解决的标识符“类名”的
    要解决这个问题,我需要添加/检查文件的目标籍UITest目标了。

其他可能出现的问题将通过xcodebuild联编提高,你可以很容易地解决它。



Answer 26:

简单地清洗CMD + SHIFT + K,然后建立CMD + B为我工作。



Answer 27:

在我的情况,我在其它链接器标记到库的引用。 删除它摆脱了错误的。



Answer 28:

我有同样的错误。 我已经进口了一个音频帧的工作,我已不再使用。 我删除它(不要删除它!),并成功构建。



文章来源: build failed with: ld: duplicate symbol _OBJC_CLASS_$_Algebra5FirstViewController