Apple Mach-O Link

问题描述:

编译我的代码时出现错误。问题标识符将其标记为“Apple Mach-O链接器链接器命令失败”。我不知道这是什么,所以我一直无法找到解决方案。Apple Mach-O Link

duplicate symbol _OBJC_METACLASS_$_XYZFlipsideViewController in: 
    /Users/studentuse/Library/Developer/Xcode/DerivedData/RSC-  
aardgrngtzicssfffcbdqsezpqmv/Build/Intermediates/RSC.build/Debug-  
iphonesimulator/RSC.build/Objects-normal/i386/XYZAppDelegate.o 
    /Users/studentuse/Library/Developer/Xcode/DerivedData/RSC- 
aardgrngtzicssfffcbdqsezpqmv/Build/Intermediates/RSC.build/Debug- 
iphonesimulator/RSC.build/Objects-normal/i386/XYZFlipsideViewController.o 
ld: 6 duplicate symbols for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) //This  
line has the mistake 

代码的问题是什么?

(这只是部分的代码。)

的问题是,已定义的类XYZFlipsideViewController两次的实施,并链接器无法弄清楚你的意思是它的定义:

duplicate symbol _OBJC_METACLASS_$_XYZFlipsideViewController 

它定义在这两个地方是这两个目标文件:

XYZAppDelegate.o 
XYZFlipsideViewController.o 

有两种可能的解释:

  • 您在源文件XYZAppDelegate.mXYZFlipsideViewController.m
  • 你有一个头文件是#include/#import编通过这两个源文件内的@implementation ... @end块具有@implementation XYZFlipsideViewController ... @end

在第一种情况下,解决方案是删除@implementation块之一。在第二种情况下,解决方案是@implementation块从头文件移动到源文件中,但将@interface块保留在头文件中。

了解@interface@implementation之间的区别是很重要的 - 前者说:“这是一类的名字,它的实例变量的名称,它的成员函数的名称”,而后者则说“在这里是类的属性和成员函数的所有定义“。

确保并检查您的实际项目目录,它说你有重复文件的多个文件。有时我忘记点击发送删除并重新创建文件时垃圾桶与删除引用。

我不确定这是你的问题,但我曾经有过类似的问题。

祝你好运! ^^