2012-07-30 22 views
11
ld: duplicate symbol _velocityX in \ 
/Users/Student/Library/Developer/Xcode/DerivedData/finalproject-ffzevekmatxvhrgisgeleoijyllr/Build/Intermediates/finalproject.build/Debug-iphonesimulator/finalproject.build/Objects-normal/i386/Level2ViewController.o \ 
and \ 
/Users/Student/Library/Developer/Xcode/DerivedData/finalproject-ffzevekmatxvhrgisgeleoijyllr/Build/Intermediates/finalproject.build/Debug-iphonesimulator/finalproject.build/Objects-normal/i386/Level1ViewController.o \ 
for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

ACTUALIZACIÓN: \ + añadido nuevas líneas para facilitar la lecturaEnlazador mandato ha fallado con el código de salida 1: Duplicar símbolo

no tengo idea de lo que está mal con mi proyecto, ¿alguien puede ayudar?

+1

Bueno : el enlazador se queja de que el símbolo "_velocityX" se define en dos objetos: ".../Objects-normal/i386/Level2ViewController.o" y ".../Objects-normal/i386/Level1ViewController. o "¿Tal vez especificó el objeto dos veces en la invocación del enlazador? ¿O incluiste un archivo .C? ¿O tienes objetos rancios flotando? – wildplasser

Respuesta

1

Es probable que tenga double _velocityX en un fichero de cabecera incluida por tanto Level1ViewController.c y Level2ViewController.c, cuando la cabecera debe tener extern double _velocityX y exactamente un de los archivos deben tener .cdouble _velocityX. (Suponiendo que el tipo de _velocityX es double, lo cual parecía razonable, y también suponiendo que sea C o C++ y no Fortran o algo así).

22

Tuve el mismo problema. Pero fue mi culpa. :). Puede haber escrito un #import file.m en lugar de #import file.h. Así que Compiles Resource duplicará el archivo file.o. - ¡Eso es todo! ^^ Para verlo, eliminas ese archivo de error, compilación -> Mostrar fila de error -> luego vuelve a copiarlo.

+1

jaja ... qué tonto :) gracias por esto. No habría notado este error. – d2burke

+1

@bao ¡lo has clavado! –

+1

Este fue mi problema también. Muchas gracias. – Ali

1

Me encontré con este mismo error al tratar de integrar algunos frameworks en mi aplicación.

Primero estaba usando Sparrow - una biblioteca de gráficos, y de forma predeterminada tenía un archivo main.m, todo iba bien hasta que intenté integrar Parse, que también dependía de FacebookSDK. Dentro de las carpetas de FacebookSDK hay una aplicación de muestra llamada Scrumptious con main.m, que fue la fuente de mis problemas. Eliminé el directorio de aplicaciones de muestra y todo funcionó bien.

2

Tuve este mismo error, fue porque definí una constante con el mismo nombre en dos archivos .m separados. Una vez que cambié el nombre en uno de ellos, se compiló.

Por ejemplo en mi ViewController.m tuve:

#import "ViewController.h" 
const int IPHONE4 = 480; 

y en mi Menu.m:

#import "Menu.h" 
const int IPHONE4 = 480; 

cambié a Menu.m:

#import "Menu.h" 
const int IPHONE4H = 480; 
Cuestiones relacionadas