it-roy-ru.com

Ошибка команды компоновщика: '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)
25
Siddharthan Asokan

Попробуйте эти шаги:

  1. Откройте свой проект в XCode.

  2. В левом боковом окне/панели XCode нажмите на название вашего проекта сверху.

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

  4. Выберите Build Phases в верхней части правой панели. (здесь другой вариант будет Настройки сборки, Правила сборки)

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

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

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

57
iOS Test

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

xcodebuild -verbose

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

26
vp_gold

Я понял, что должен был использовать файл .xcworkspace вместо файла .xcodeproj.

13
Dean

Продукт -> Очистить, затем Продукт -> Запустить :)

7
Oscar

В моем случае я по ошибке создал новый подкласс 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

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

2
Kevin

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

0
yubaraj poudel

Подобная ошибка только что произошла со мной на Xcode 6.4. Похоже, ошибка Xcode.

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

0
haitham

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

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

0
DanWebster

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

0
Harry.Wang

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

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

0
Insite Mobilellc

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

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

Нажмите «очистить папку сборки» и дождитесь ее сборки и запуска. Это должно устранить любые ошибки в файле сборки.

0
Daniel