当我尝试构建项目时,我收到以下错误。
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
答案 0 :(得分:23)
我今天遇到了同样的问题。事实证明这是#import
陈述中的拼写错误。我不小心包含了.m
文件而不是标题:
#include "MyClass.m"
而不是:
#include "MyClass.h"
答案 1 :(得分:3)
我的猜测是你在同一个文件(GLFunView.m)中执行了两次GLFunView。也许您打算实现GLFunView,然后在其上实现一个类别,并忘记了类别名称?