重复的符号中的错误目标-C的建立?
-
20-09-2019 - |
题
我得到了这个错误,当我按下建立+调试:
ld: duplicate symbol .objc_class_name_BlogTableItemCell in /Users/fabian/Development/Workspaces/iphone_experiments/xcode_build_output/MausLog.build/Debug-iphonesimulator/MausLog.build/Objects-normal/i386/BlogTableItemCell-3733583914888A7B.o and /Users/fabian/Development/Workspaces/iphone_experiments/xcode_build_output/MausLog.build/Debug-iphonesimulator/MausLog.build/Objects-normal/i386/BlogTableItemCell-3733583914888A7B.o
collect2: ld returned 1 exit status
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1
解决方案
看来你是汇编相同的BlogTableItemCell类的两倍,在不同的地方,你的代码。这可能发生在下列情况下。
你已经把同类 执行成两个不同的 文件;
你实际上只有一个 执行这一类,但是 你还连接在你的项目的框架 或库含有一个类的 名称是完全相同。
试图找到在整个项目类,确保只有一个副本可在项目中。
其他提示
您也可以得到这个错误,如果你不慎错过了Xcode的自动完成#进口语句指定重复‘类,而不是‘.H’的”为.M”文件’。
对于我来说,改变是从“无公共块”为No(Targets-下>构建设置 - >苹果LLVM - 代码生成)
我有类似的问题由于consts的限定较差。 我在我的标头中定义一个const:
int const kCropLocationTop = 1;
这大概是进口多次。要修复我改变头部DEF如下:
extern int const kCropLocationTop;
和移动的常量的分配到.m文件:
int const kCropLocationTop = 1;
希望帮助任何人,因为我谁是一无所知,简单的目标C概念!
这是错误的项目被列入两次在源文件 - >生成阶段 - >编译源代码。他们中的一个取出解决了这个问题。
此错误的最常见的原因是导入xyz.m文件而不是文件xyz.h。
请检查您的进口含有类似
#import "----.m"
只需添加;使用Xcode的生成子类的管理对象(核心数据),有时可以复制生成的文件。对于我修复是删除生成的文件,并重新产生它们。
我只是碰到了这个问题我自己。对于列表,这里的另一种可能性:
在项目文件中重复的联线。
我引起在SVN更新此合并冲突,当我小心重复线。
这发生在我身上了。在我的情况下,自动生成的类我的核心数据中的一个(仅仅一个)插入两次。我通过观察构建阶段...编译源代码发现了重复。简单地删除出现之一解决了这个问题。
添加另一个可能的原因的列表...你可能在实现文件mistakingly创建了多个常量,但执行的以外,具有相同的名称。
在HeaderFileOne.m
NSString * const kCoolConstant = @"cool";
在HeaderFileTwo.m
NSString * const kCoolConstant = @"cool";
因此,改变这些常数名中的一个将修正编译错误。
我也面临这一问题。我的解决办法是重新命名的全局变量,它具有相同的名称作为一个在其他类中的一个。希望这有助于
这可能有助于有人
因为我复制的ViewController我得到这个错误,然后重新命名它。所以,当我编译我得到这个错误。原因是在两个视图控制器的存在具有相同名称的一个即“浮动”可变的“浮动填充= 10.0”,我曾在类级定义的。 在一个视图控制器的重命名上述变量的名称解决我的问题。
同样的事情发生在我身上,而我是用本地化的厦门国际银行文件的播放,一不小心我已经创建了两个实施文件和appereantly,在我的情况下造成的问题。删除/重新创建实现文件没有做同样的错误后,该错误是固定的。
我们的一个开发人员留在有两次“libSoomla *”的项目文件。我删除了重复soomla文件,重新建,而且定了!
希望它能帮助。
在5月的情况下,我跟着一些指令来构建的Subversion的较新版本,其指示我创建该符号链接:
ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.10.xctoolchain
现在我真的一个Windows家伙,所以它并没有立即明显,我 - 但删除链接固定它,我(重新启动的XCode后):
rm /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.10.xctoolchain
呼。
(I得到实际的错误是在此描述的一个: 建立错误的重复符号arclite.o )
请确保您没有导入.m文件。对我来说,这一点我加了#进口“SchoolCommuterHome.m”代替#进口“SchoolCommuterHome.h”