按build + debug时出现此错误:
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类。在下列情况下可能会发生这种情况。
尝试在整个项目中查找您的课程,并确保您的项目中只有一个副本可用。
它也发生在我身上。在我的例子中,我的核心数据中的一个(仅一个)自动生成的类被插入了两次。我通过查看Build Phases ... Compile Sources来发现重复。只需删除其中一个事件即可解决问题。
向列表添加另一个可能的原因...您可能在实现文件中错误地创建了多个常量,但在实现之外,使用相同的名称。
在HeaderFileOne.m中
NSString * const kCoolConstant = @"cool";
在HeaderFileTwo.m中
NSString * const kCoolConstant = @"cool";
因此,更改其中一个常量名称将修复编译错误。
我也遇到过这个问题。我的解决方案是重命名一个全局变量,它与其他类中的变量名称相同。希望这可以帮助
这可能对某人有帮助
我收到此错误是因为我复制了ViewController,然后重命名了它。所以当我编译时,我得到了这个错误。原因是在两个视图控制器中都有一个同名的“浮点”变量,即我在类级别定义的“浮点填充= 10.0”。在其中一个视图控制器中重命名上述变量的名称解决了我的问题。
当我使用可本地化的xib文件时,同样的事情发生在我身上,不小心我创建了两个实现文件,并且在我的情况下引起了问题。在删除/重新创建实现文件而没有做同样的错误之后,修复了错误。
我们的一位开发人员将“libSoomla *”项目文件留在那里两次。我删除了重复的soomla文件,重新构建,并修复它!
希望能帮助到你。
在可能的情况下,我按照一些指示构建了一个较新版本的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
唷。
(我得到的实际错误是这里描述的错误:build error duplicate symbols arclite.o)
确保您没有导入.m文件。对我来说,这发生了我添加#import“SchoolCommuterHome.m”而不是#import“SchoolCommuterHome.h”
如果您错误地让XCode为#import语句自动完成指定'duplicate'类而不是'.h'的'.m'文件,也可能会出现此错误。
对我来说,将“无公共块”从“是”更改为“否”(在“目标 - >构建设置 - > Apple LLVM - 代码生成”下)
由于对锥体的定义不佳,我遇到了类似的问题。我在标题中定义了一个const:
int const kCropLocationTop = 1;
这可能是多次进口的。要修复我更改标题def如下:
extern int const kCropLocationTop;
并将const的赋值移动到.m文件:
int const kCropLocationTop = 1;
希望能帮助那些像我一样无知简单客观概念的人!
iPhone: Duplicate Symbol Error?来自user576924
我正确地回答了然而要找到令人讨厌的gremlin这个ZSH片段。
grep "import.*\.m" **/*.[hm]
会立即告诉你你的错误在哪里。
错误地,源文件在项目 - >构建阶段 - >编译源中包含两次。删除其中一个解决了这个问题。
导致此错误的最常见原因是导入xyz.m文件而不是xyz.h文件。检查您的导入是否包含#import "----.m"
之类的内容
只是添加;使用Xcode生成子类管理对象(Core Data)有时可以复制生成的文件。对我来说,修复是删除生成的文件并重新生成它们。
我自己也遇到了这个问题。对于列表,这是另一种可能性:
项目文件中的重复链接行。
当我不小心重复一行时,我在SVN更新上引起了这种合并冲突。