Ошибка создания дублированного символа в проекте Xcode - PullRequest
6 голосов
/ 31 июля 2010

Когда я пытаюсь построить свой проект, я получаю следующую ошибку.

ld: дубликат символа .objc_class_name_GLFunView в /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 строить / Debug-iphonesimulator / GLFun.app / GLFun нормальный i386 кд / Users / джин / Документы / Разработка / GLFun setenv MACOSX_DEPLOYMENT_TARGET 10.5 Сетенв ПУТЬ "/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 / Пользователи / джин / Документы / разработки / GLFun / сборки / Debug-iphonesimulator -F / Users / джин / Документы / разработки / GLFun / сборки / 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 -Фреймворк Фонд -Фреймворк UIKit -Фреймворк CoreGraphics - каркас OpenGLES -framework QuartzCore -o /Users/gin/Documents/development/GLFun/build/Debug-iphonesimulator/GLFun.app/GLFun

Ответы [ 2 ]

23 голосов
/ 10 декабря 2011

Я столкнулся с той же проблемой сегодня. Это оказалось опечаткой в ​​#import заявлении. Я случайно включил файл .m вместо заголовка:

#include "MyClass.m"

вместо:

#include "MyClass.h"
3 голосов
/ 31 июля 2010

Полагаю, вы дважды реализуете GLFunView в одном файле (GLFunView.m) Возможно, вы хотели реализовать GLFunView, а затем внедрить в него категорию и забыли имя категории?

...