Подтвердить что ты не робот

Ошибка команды Linker: 'ld: символ не найден для архитектуры i386'

У меня ошибка во время компиляции. Кажется, это странно. он работал как приложение с подробным представлением, но использование единого представления не работает. это сведения об ошибке:

   Undefined symbols for architecture i386:
    "_OBJC_CLASS_$_RssArticle", referenced from:
      objc-class-ref in RssXmlParser.o
  ld: symbol(s) not found for architecture i386
  clang: error: linker command failed with exit code 1 (use -v to see invocation)
4b9b3361

Ответ 1

Попробуйте выполнить следующие действия:

  • Откройте проект в XCode.

  • В левом боковом окне/панели XCode нажмите на свое имя проекта сверху.

  • Теперь выберите Target с правой стороны XCode.

  • Выберите "Сформировать фазы" с правой панели. (здесь может быть другой вариант: настройки сборки, правила сборки)

  • В той же панели откройте "Скомпилировать источники", здесь проверьте: все ли перечисленные файлы (.m)? если не все файлы, нажмите на (+) знак внизу, чтобы добавить (.m) файлы, которых нет в списке

  • По вашей ошибке кажется, что RssXmlParser не существует, добавьте это и снова скомпилируйте

Теперь все будет хорошо.

Ответ 2

не вижу никого, предлагающего перейти на терминал и перейти в каталог, в котором находится проект, и запустить

xcodebuild -verbose

чтобы увидеть подробную ошибку, и просто чтение ошибки помогает много времени

Ответ 3

Я понял, что мне пришлось использовать файл .xcworkspace вместо файла .xcodeproj.

Ответ 4

Продукт → Очистить затем Продукт → Выполнить:)

Ответ 5

В моем случае я ошибочно создал новый подкласс UIView с .h и .c файлами вместо файлов .h и .m. Изменение расширений было простым, но я не думал изменять содержимое файлов .m. Таким образом, мои файлы .h имели

#ifndef My_Project_MPMyView_h
#define My_Project_MPMyView_h

#import <UIKit/UIKit.h>

@interface MPMyView : UIView

@end

#endif

и мои файлы .m неправильно имели

#include <stdio.h>

Когда я изменил файлы .m на

@interface MPMyView : UIView

@end

@implementation MPMyView

@end

Ошибка компоновщика была исправлена.

Ответ 6

Я решил ту же проблему, потому что я создал компоненты как отдельные проекты. После добавления папок в основной проект я забыл удалить файлы .plist,.string и дополнительные файлы main.m из каталогов групп импортированных компонентов.

Удаление этих проблем решило мою проблему, потому что приложение явно получало конфликтующие команды сборки...

Ответ 7

Я столкнулся с этой ошибкой из-за дублирования имен файлов (я создал подклассы NSManagedObjectContext автоматически в основных данных через меню редактора).

Начиная с XCODE 5.0, просто закройте и перезапустите, и xcode должен распознать это и исправить его для вас, если вы нажмете на желтое предупреждение в левой панели панели

Ответ 8

Аналогичная ошибка произошла со мной на Xcode 6.4. Похоже на ошибку Xcode.

Мое исправление заключалось в том, чтобы перейти в файл ".o", который вызвал ошибку, снять и перепроверить целевые членства, которые вам нужны.

Ответ 9

Я думаю, может быть, вы пытаетесь создать два разных файла .C(с основной функцией) в одном проекте. C только позволяет вам иметь один главный вход в каждом проекте.

Ответ 10

Я не знаю, как это работает. Но я просто закрыл xcode и открылся снова, щелкнув файл xcworkspace и работал у меня. вы можете надеяться, что это может решить вашу проблему, спасибо.

Ответ 11

Удерживайте нажатой клавишу alt. На верхней панели инструментов перейдите в

Продукт > папка чистой сборки

Нажмите "clean build folder" и дождитесь его создания и запуска. Он должен разрешить любые ошибки в файле сборки.