XCode项目中的重复符号构建错误

时间:2010-07-31 05:21:13

标签: cocoa cocoa-touch xcode debugging

当我尝试构建项目时,我收到以下错误。

  

ld:重复的符号   .objc_class_name_GLFunView in   /Users/gin/Documents/development/GLFun/build/GLFun.build/Debug-iphonesimulator/GLFun.build/Objects-normal/i386/GLFunView-7A51E8797CBB3D72.o   和   /Users/gin/Documents/development/GLFun/build/GLFun.build/Debug-iphonesimulator/GLFun.build/Objects-normal/i386/GLFunView-7A51E8797CBB3D72.o

这个错误是什么?如何追踪错误的位置? XCode通常会突出显示有问题的代码,但对于此错误,它没有显示任何内容?它与Interface Builder没有任何关系吗?

我的研究表明,这可能是因为包含两次,但我不明白这是怎么回事,因为我没有使用任何#include语句,我只使用#import语句。

这里有一些构建输出:

  

Ld的   构建/调试-iphonesimulator / GLFun.app / GLFun   正常的i386 cd   /用户/ GIN /文档/开发/ GLFun   setenv MACOSX_DEPLOYMENT_TARGET 10.5   setenv PATH   “/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin”   /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2   -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.3.sdk   -L /用户/ GIN /文档/开发/ GLFun /编译/调试,iphonesimulator   -F /用户/ GIN /文档/开发/ GLFun /编译/调试,iphonesimulator   -filelist /Users/gin/Documents/development/GLFun/build/GLFun.build/Debug-iphonesimulator/GLFun.build/Objects-normal/i386/GLFun.LinkFileList   -mmacosx-version-min = 10.5 -framework Foundation -framework UIKit -framework   CoreGraphics -framework OpenGLES   -framework QuartzCore -o /Users/gin/Documents/development/GLFun/build/Debug-iphonesimulator/GLFun.app/GLFun

2 个答案:

答案 0 :(得分:23)

我今天遇到了同样的问题。事实证明这是#import陈述中的拼写错误。我不小心包含了.m文件而不是标题:

#include "MyClass.m"

而不是:

#include "MyClass.h"

答案 1 :(得分:3)

我的猜测是你在同一个文件(GLFunView.m)中执行了两次GLFunView。也许您打算实现GLFunView,然后在其上实现一个类别,并忘记了类别名称?