gpt4 book ai didi

ios - Apple Mach-O 链接

转载 作者:行者123 更新时间:2023-11-29 10:59:57 26 4
gpt4 key购买 nike

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

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 中都有一个 @implementation XYZFlipsideViewController ... @end block ,
  • 您在头文件中有 @implementation ... @end block ,该 block 由 #include/#import 编辑那些源文件

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

理解 @interface@implementation 之间的区别很重要——前者说“这是一个类的名称,它的实例变量的名称,及其成员函数的名称”,而后者表示“这是该类的所有属性和成员函数的定义”。

关于ios - Apple Mach-O 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16406604/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com