2010-07-31 17 views
5

Cuando intento crear mi proyecto, aparece el siguiente error.Error de compilación de símbolo duplicado en el proyecto XCode

ld: Símbolo duplicado .objc_class_name_GLFunView en /Users/gin/Documents/development/GLFun/build/GLFun.build/Debug-iphonesimulator/GLFun.build/Objects-normal/i386/GLFunView-7A51E8797CBB3D72. O y /Users/gin/Documents/development/GLFun/build/GLFun.build/Debug-iphonesimulator/GLFun.build/Objects-normal/i386/GLFunView-7A51E8797CBB3D72.o

Qué es este error ¿acerca de? ¿Cómo puedo rastrear dónde está el error? XCode usualmente resalta el código que tiene problemas, pero para este error, ¿no muestra nada? No tiene nada que ver con lo que hace Interface Builder.

Mi investigación indica que esto puede deberse a que se ha incluido algo dos veces, pero no entiendo cómo es posible, ya que no estoy usando ninguna instrucción #include, solo estoy usando sentencias # import.

Aquí hay más de la salida de construcción:

Ld acumulación/Depuración-iphonesimulator/GLFun.app/GLFun i386 normales cd /Usuarios/GIN/Documentos/desarrollo/GLFun setenv MACOSX_DEPLOYMENT_TARGET 10.5 setenv RUTA "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Desarrollador/Plataformas/iPhoneSimulator .platform/Desarrollador/usr/bin/gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/D eveloper/SDKs/iPhoneSimulator3.1.3.sdk -L/Users/gin/Documents/development/GLFun/build/Debug-iphonesimulator -F/Users/gin/Documents/development/GLFun/build/Debug-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 - marco CoreGraphics -framework OpenGLES -framework QuartzCore -o /Users/gin/Documents/development/GLFun/build/Debug-iphonesimulator/GLFun.app/GLFun

+1

Debe incluir algo dos veces porque los caminos son los mismos .. qué dice "Incluido de" en cualquier de la salida de compilación? – jtbandes

+0

Incluye casi nunca causa errores de enlazador. Este podría ser desencadenado por múltiples incluye si tiene una '@ implementation' en un archivo de encabezado ... pero si ese es el caso, entonces tiene otros problemas. –

+0

Busqué todo el proyecto para @implementation y no encontré ni una sola instancia del mismo. –

Respuesta

3

Mi conjetura es que eres @implementing GLFunView dos veces en el mismo archivo (GLFunView.m). ¿Tal vez quiso implementar GLFunView y luego implementar una categoría en él y olvidó el nombre de la categoría?

+0

No hay @implementing en GLFunView.m. –

+0

no, pero hay al menos una '@ implementation'. Si tiene 2 líneas @implementation GLFunView, implementará la clase dos veces. Si tiene eso, tal vez uno estaba destinado a ser un '@implementation GLFunView (SomeCategory)'? –

+0

O tal vez, como mencioné en un comentario anterior, ¿su GLFunView.h tiene un '@implementation GLFunView' en alguna parte? –

23

Me encontré con el mismo problema hoy. Resultó ser un error tipográfico en una declaración #import. He incluido accidentalmente el archivo .m en lugar de la cabecera:

#include "MyClass.m" 

en lugar de:

#include "MyClass.h" 
Cuestiones relacionadas