Ошибка команды/разработчика/usr/bin/clang с кодом завершения 1

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

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

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

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

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/SimpleScoreKeeper Mac" normal x86_64     cd "/Пользователи/myusername/Dropbox/iphone приложение /SimpleScoreKeeper Mac"     setenv MACOSX_DEPLOYMENT_TARGET 10.6     /Разработчик/usr/bin/clang -arch x86_64 -isysroot /Developer/SDKs/MacOSX 10.6.sdk -L/Пользователи/MyUserName/Library/Developer/Xcode/DerivedData/SimpleScoreKeeper_Mac-bjvjeiybvmwfjpfilvnpezarwkml/Build/Products/Debug -F/Users/MyUserName/Library/Developer/Xcode/DerivedData/SimpleScoreKeeper_Mac-bjvjeiybvmwfjpfilvnpezarwkml/Build/Products/Debug -filelist "/Users/MyUserName/Library/Developer/Xcode/DerivedData/SimpleScoreKeeper_Mac-bjvjeiybvmwfjpfilvnpezarwkml/Build/полупродукты/SimpleScoreKeeper Mac.build/Debug/SimpleScoreKeeper Mac.build/Objects-normal/x86_64/SimpleScoreKeeper Mac.LinkFileList" -mmacosx-version-min = 10.6 -framework Cocoa -o "/Users/MyUserName/Library/Developer/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/полупродукты/SimpleScoreKeeper Mac.build/Debug/SimpleScoreKeeper Mac.build/Objects-normal/x86_64/Prefrences.o и /Users/MyUserName/Library/Developer/Xcode/DerivedData/SimpleScoreKeeper _Mac-bjvjeiybvmwfjpfilvnpezarwkml/Build/полупродукты/SimpleScoreKeeper Mac.build/Debug/SimpleScoreKeeper Mac.build/Objects-normal/x86_64/RootController.o для архитектуры x86_64 clang: ошибка: команда компоновщика не удалась с кодом выхода 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)

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

EDIT: Вот код для файла, который я не могу импортировать.

#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

Ответ 1

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

Ответ 2

Вот почему ld: duplicate symbol _addScore

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

Ответ 3

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

Ответ 4

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

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

Ответ 5

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

Ответ 6

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

Ответ 7

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

int addScore;

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

extern int addScore;

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

Ответ 8

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

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

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

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

Ответ 9

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

Ответ 10

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

Ответ 11

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

Ответ 12

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

Ответ 13

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

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

Ответ 14

мое решение:

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

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