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.m
和XYZFlipsideViewController.m
,或 - 你有一个头文件是
#include
/#import
编通过这两个源文件内的@implementation ... @end
块具有@implementation XYZFlipsideViewController ... @end
块
在第一种情况下,解决方案是删除@implementation
块之一。在第二种情况下,解决方案是将@implementation
块从头文件移动到源文件中,但将@interface
块保留在头文件中。
了解@interface
和@implementation
之间的区别是很重要的 - 前者说:“这是一类的名字,它的实例变量的名称,它的成员函数的名称”,而后者则说“在这里是类的属性和成员函数的所有定义“。
答
确保并检查您的实际项目目录,它说你有重复文件的多个文件。有时我忘记点击发送删除并重新创建文件时垃圾桶与删除引用。
我不确定这是你的问题,但我曾经有过类似的问题。
祝你好运! ^^