Команда / разработчик / usr / bin / clang завершилась неудачно с кодом выхода 1

Я пытался создать простое приложение Mac Objective-C с Xcode, чтобы два игрока играли в простую игру, набирая до 36 очков на игрока. Это не очень практичное приложение из-за его ограниченных возможностей, и это в основном для практики. Я пытался немного расширить приложение с помощью окна настроек, которое выскакивало при щелчке по пункту меню.

Я создал файл для управления элементом "Мужчины", а затем всплывающее перо при нажатии. Все это работало нормально, и появлялось новое окно. Я поместил ползунки, текстовые поля и т. Д. На перо и связал их с действиями. Все это работало нормально.

Проблема возникла, когда я попытался импортировать файлы в свой корневой контроллер, чтобы я мог использовать выбор пользователя в приложении.

У меня следующая ошибка компилятора:

Command /Developer/usr/bin/clang failed with exit code 1

Наряду со всем этим:

Ld "/ Users / myusername / Library / Developer / Xcode / DerivedData / SimpleScoreKeeper_Mac-bjvjeiybvmwfjpfilvnpezarwkml / Build / Products / Debug / SimpleScoreKeeper Mac.app/Contents/MacOS/SimpleKeeper Mac" обычное приложение x86_64 / Usersbox / Пользователи Dropbox для iphone x86_64 / SimpleScoreKeeper Mac»SetEnv MACOSX_DEPLOYMENT_TARGET 10,6 / Разработчик / USR / бен / лязг -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.6.sdk -L / Пользователи / MyUserName / Library / Developer / Xcode / DerivedData / SimpleScoreKeeper_Mac-bjvjeiybvmwfjpfilvnpezarwkml / сборки / Products / Debug -F / Users / myusername / Library / Developer / Xcode / DerivedData / SimpleScoreKeeper_Mac-bjvjeiybvmwfjpfilvnpezarwkml / Build / Products / Debug -filelist / Users / myusername / Library / Developer / Xcode / Derivedjddata / Промежуточные / SimpleScoreKeeper Mac.build/Debug/SimpleScoreKeeper Mac.build/Objects-normal/x86_64/SimpleScoreKeeper Mac.LinkFileList "-mmacosx-version-min = 10.6 -framework Cocoa -o" / Users / myus имя / Библиотека / Разработчик / Xcode / DerivedData / SimpleScoreKeeper_Mac-bjvjeiybvmwfjpfilvnpezarwkml / Build / Products / Debug / SimpleScoreKeeper Mac.app/Contents/MacOS/SimpleScoreKeeper Mac "

ld: повторяющийся символ _addScores в / Users / myusername / Library / Developer / Xcode / DerivedData / SimpleScoreKeeper_Mac-bjvjeiybvmwfjpfilvnpezarwkml / Build / Intermediates / SimpleScoreKeeper Mac.build/Debug/SimpleScoreKeeper Mac.build/Debug/SimpleScoreKeeper/64/SimpleScore- Users / myusername / Library / Developer / Xcode / DerivedData / SimpleScoreKeeper_Mac-bjvjeiybvmwfjpfilvnpezarwkml / Build / Intermediates / SimpleScoreKeeper Mac.build/Debug/SimpleScoreKeeper Mac.build/Objects error-normal.Rox86_client_client_client_64/Client_Objects error-normalRox86 сбой с кодом выхода 1 (используйте -v, чтобы увидеть вызов) Команда / разработчик / usr / bin / clang завершилась неудачно с кодом выхода 1

Следующие (возможно) связанные файлы в моем проекте.

RootController.h - All the interface declarations for stuff in the MainMenu.xib window
RootController.m - Where I need to import the files to
MainMenu.xib - The nib owned by the RootController class
Preferences.h - A file I'd want to import, but it won't work.
Preferences.m - A file I'd (maybe) want to import, but it won't work.
Preferences.xib - The nib owned by the Preferences class.
PreferencesMenuController.h - Where I declare the clickPreferences action. (Liked to MainMenu.xib)
PreferencesMenuController.m - Where I say that clickPreferences opens up Preferences nib.  (Linked to MainMenu.xib)

Есть ли причина, по которой я получаю эту ошибку? Что мне нужно сделать в импортируемом классе? Пожалуйста, будьте очень подробны, я новичок в языке, но не знаю, как делать определенные вещи. И если мне нужно что-то уточнить, дайте мне знать.

РЕДАКТИРОВАТЬ: вот код файла, который я не могу импортировать.

#import "Preferences.h"

@implementation Preferences

int addScores;

- (IBAction)addScoresToggled
{
    NSLog(@"addScores was toggled.");
}


- (id)initWithWindow:(NSWindow *)window
{
    self = [super initWithWindow:window];
    if (self) {

    }

    return self;
}

- (void)dealloc
{
    [super dealloc];
}

- (void)windowDidLoad
{
    [super windowDidLoad];
}

@end

person ObjectiveProgrammer    schedule 02.08.2011    source источник


Ответы (14)


Вы также можете получить эту ошибку, если случайно включили файл реализации, а не файл заголовка. например #import "MyClass.m" вместо #import "MyClass.h"

person Community    schedule 28.12.2011

Это причина ld: duplicate symbol _addScore

В вашем проекте у вас есть файл _addScore более одного раза. проверьте иерархию вашего проекта.

person Ishu    schedule 02.08.2011
comment
У меня ничего нет с подчеркиванием, что именно это означает? Вот код файла .m, который я не могу импортировать: Изменить: поскольку в комментариях нет разрывов строк, я также собираюсь опубликовать код в конце вопроса. - person ObjectiveProgrammer; 02.08.2011
comment
Возможно, поздно, но int addScore находится в статической области видимости. Итак, если он включен в другое место (или файл включен в проект несколько раз), вы получите дубликат. - person GtotheB; 28.12.2011

Получив ту же ошибку, я заметил, что каким-то образом получил в моем проекте два файла .h с одинаковым именем. Удаление дубликата из папки проекта (а не просто удаление ссылки) решило проблему для меня.

person lreichold    schedule 28.01.2012
comment
Похожая вещь. У меня в проекте было две ссылки на файл .h. Я удалил одну ссылку. - person utsabiem; 30.05.2012
comment
Получена такая же ошибка. После поиска в последних импортированных файлах обнаружены повторяющиеся элементы. - person Kannan Prasad; 24.07.2012

Я столкнулся с этой проблемой только сейчас, потому что я случайно импортировал файл .m для класса вместо файла .h.

Для тех, кто пытается ответить: если проблема возникла внезапно, подумайте, какие #import строки вы добавили недавно (или еще лучше, запустите grep в git!).

person Stecman    schedule 14.08.2012

select demo.xcodeproj , показать содержимое пакета , удалить файл с именем project.xcworkspace и f xcuserdata

person logger    schedule 06.09.2012

Я недавно столкнулся с этой ошибкой. Вы импортируете один и тот же файл .h из двух разных файлов? Это вызвало у меня эту ошибку.

person Deco    schedule 14.12.2011
comment
это само по себе не должно быть проблемой, больше похоже на то, что что-то не так с файлом заголовка, который вы включали (например, создание экземпляров переменных в файле заголовка) - person drfrogsplat; 25.01.2012

Если вы хотите, чтобы переменная addScore была доступна в нескольких файлах, вам необходимо определить ее в одном файле .m как:

int addScore;

и объявите его в связанном файле .h как:

extern int addScore;

Если в объявлении не указано ключевое слово extern, то компилятор видит это как переопределение addScore в каждом файле, в который импортируется / включается .h. Это приведет к ошибке, которую вы видите.

person fishinear    schedule 12.01.2012

У меня была такая же проблема после запуска двух проектов с одинаковыми идентификаторами приложений.

После удаления (замените ‹yourlogin› на имя вашей учетной записи):

project.xcworkspace/xcuserdata/<yourlogin>.xcuserdatad/UserInterfaceState.xcuserstate

он начал работать под симулятором, но все еще не на устройстве, поэтому я закрыл все открытые проекты, создал новый и скопировал туда файлы, и, наконец, он заработал!

person Ad1905    schedule 09.04.2012

Я столкнулся с той же ошибкой при использовании RestKit. Я выбрал цель RestKit и почистил / построил ее. затем я выбрал свою основную цель (свое приложение) и очистил / построил ее. это исправило это для меня.

person Community    schedule 08.05.2012

Я сталкиваюсь с такой ошибкой, когда архивирую проект под Xcode 4.3 и 4.4, и, наконец, я закончил эту ошибку переключением со стандарта (32/64-битный Intel) на 64-битный Intel

person Jiulong Zhao    schedule 24.05.2012

У меня была другая причина: при использовании Xcode 4.4 цель развертывания была установлена ​​на 10,4, тогда как минимум был равен 10,6. Это решило для меня.

person Alex    schedule 19.08.2012

Я столкнулся с этой ошибкой, когда случайно щелкнул Product -> Test вместо Product -> Run. Я просто очистил проект, щелкнув Продукт -> Очистить, и ошибка исчезла.

person Haris ur Rehman    schedule 22.05.2014

DUPLICATE или AMBIGUOUS заголовочные файлы или файлы реализации

Это может произойти, если существует несколько возможных путей к импортируемым файлам. Например, если вы импортируете MyClass.h, но в вашем проекте есть два экземпляра MyClass.h

person Alex V    schedule 08.09.2014

мое решение:

Я импортировал в свой проект несколько файлов .h и .m. но не использовал его ни в одном из моих классов. поэтому я удалил их из искателя. это вызвало указанную выше ошибку.

поэтому мне пришлось перейти к настройке проекта / этапам сборки =>, а затем также удалить эти ссылки на файлы. они были красного цвета. потому что они были удалены из поисковика, а не из Xcode

person Hashem Aboonajmi    schedule 31.10.2014