it-swarm.com.ru

Apple Mach-O Linker ошибки, и я не знаю, что делать

Я больше не могу скомпилировать свой проект для устройства или симулятора. Я получаю 13 ошибок Apple Mach-O-Linker. Все началось после неудачной попытки использовать sharekit. Вот журнал с ошибкой:

ld: warning: directory not found for option '-F/Users/bbrandy95/Documents/Broken Brandsonic Web Projects/Brandsonic Web mobile/../../Downloads/0.2.1gm1/iphoneos4.0/System/Library/Frameworks'
Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_NSURLRequest", referenced from:
      objc-class-ref in Brandsonic_Web_mobileAppDelegate.o
      objc-class-ref in Brandsonic_Web_mobileViewController.o
  "_OBJC_CLASS_$_NSAutoreleasePool", referenced from:
      objc-class-ref in main.o
  "_objc_msgSendSuper2", referenced from:
      -[Brandsonic_Web_mobileAppDelegate dealloc] in Brandsonic_Web_mobileAppDelegate.o
      -[Brandsonic_Web_mobileViewController didReceiveMemoryWarning] in Brandsonic_Web_mobileViewController.o
      -[Brandsonic_Web_mobileViewController dealloc] in Brandsonic_Web_mobileViewController.o
  "_objc_setProperty", referenced from:
      -[Brandsonic_Web_mobileAppDelegate setWindow:] in Brandsonic_Web_mobileAppDelegate.o
      -[Brandsonic_Web_mobileAppDelegate setViewController:] in Brandsonic_Web_mobileAppDelegate.o
  "__objc_empty_vtable", referenced from:
      _OBJC_CLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o
      _OBJC_METACLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o
      _OBJC_CLASS_$_Brandsonic_Web_mobileViewController in Brandsonic_Web_mobileViewController.o
      _OBJC_METACLASS_$_Brandsonic_Web_mobileViewController in Brandsonic_Web_mobileViewController.o
      _OBJC_METACLASS_$_SecondView in SecondView.o
      _OBJC_CLASS_$_SecondView in SecondView.o
  "_objc_msgSend", referenced from:
      _main in main.o
      -[Brandsonic_Web_mobileAppDelegate application:didFinishLaunchingWithOptions:] in Brandsonic_Web_mobileAppDelegate.o
      -[Brandsonic_Web_mobileAppDelegate dealloc] in Brandsonic_Web_mobileAppDelegate.o
      -[Brandsonic_Web_mobileAppDelegate GOOGLE] in Brandsonic_Web_mobileAppDelegate.o
      -[Brandsonic_Web_mobileAppDelegate YOUTUBE] in Brandsonic_Web_mobileAppDelegate.o
      -[Brandsonic_Web_mobileAppDelegate WIKI] in Brandsonic_Web_mobileAppDelegate.o
      -[Brandsonic_Web_mobileViewController webView:shouldStartLoadWithRequest:navigationType:] in Brandsonic_Web_mobileViewController.o
      ...
  "__objc_empty_cache", referenced from:
      _OBJC_CLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o
      _OBJC_METACLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o
      _OBJC_CLASS_$_Brandsonic_Web_mobileViewController in Brandsonic_Web_mobileViewController.o
      _OBJC_METACLASS_$_Brandsonic_Web_mobileViewController in Brandsonic_Web_mobileViewController.o
      _OBJC_METACLASS_$_SecondView in SecondView.o
      _OBJC_CLASS_$_SecondView in SecondView.o
  "_OBJC_CLASS_$_NSObject", referenced from:
      _OBJC_CLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o
  "___CFConstantStringClassReference", referenced from:
      CFString in Brandsonic_Web_mobileAppDelegate.o
      CFString in Brandsonic_Web_mobileAppDelegate.o
      CFString in Brandsonic_Web_mobileAppDelegate.o
      CFString in Brandsonic_Web_mobileViewController.o
      CFString in Brandsonic_Web_mobileViewController.o
      CFString in Brandsonic_Web_mobileViewController.o
      CFString in Brandsonic_Web_mobileViewController.o
      ...
  "_OBJC_CLASS_$_NSKeyedUnarchiver", referenced from:
      objc-class-ref in Brandsonic_Web_mobileViewController.o
  "_OBJC_CLASS_$_NSUserDefaults", referenced from:
      objc-class-ref in Brandsonic_Web_mobileViewController.o
  "_OBJC_CLASS_$_NSURL", referenced from:
      objc-class-ref in Brandsonic_Web_mobileAppDelegate.o
      objc-class-ref in Brandsonic_Web_mobileViewController.o
  "_OBJC_METACLASS_$_NSObject", referenced from:
      _OBJC_METACLASS_$_Brandsonic_Web_mobileAppDelegate in Brandsonic_Web_mobileAppDelegate.o
      _OBJC_METACLASS_$_Brandsonic_Web_mobileViewController in Brandsonic_Web_mobileViewController.o
      _OBJC_METACLASS_$_SecondView in SecondView.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
'

Как это исправить? Пожалуйста помоги.

26
Sega dude

Для каждого с похожей ошибкой . Если это произойдет, вы обычно можете удалить «Путь» в пункте «Точка».

target-> Настройки сборки-> Пути поиска в библиотеке enter image description here

49
crashbus

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

  • Вы можете исправить это, удалив дубликат. Чтобы найти его, выберите фреймворк в навигаторе проекта Xcode и выберите Показать в Finder . Затем очистите и постройте свой проект.

Это также может быть вызвано тем, что вам не хватает файлов заголовков фреймворка или ссылки на них. 

  • В этом случае вам следует попытаться удалить SDK или фреймворк и добавить его снова.

Удачи.

18
Divine_Code

Если вы установили зависимости с помощью CocoaPods, обязательно откройте проект XCode, щелкнув файл .xcworkspace и не файл .xcodeproj.

5
Chris Chute

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

Самый верный способ исправить это - создать новый проект и переместить ваши файлы и старый info.plist поверх него.

Следующий наиболее вероятный способ исправить это - создать новую цель в вашем текущем проекте и посмотреть, скомпилируется ли она (если у вас есть какие-либо специальные флаги из старой цели, вы захотите их скопировать).

Также вы можете попробовать компилировать версию Release против Build, и если один из них работает, посмотрите все параметры компилятора и посмотрите, что отличается.

Если вы добавили путь поиска заголовка для Sharekit, возможно, попробуйте очистить весь путь поиска заголовка и посмотреть, исправит ли это что-то. Также убедитесь, что ваш проект все еще включает в себя фреймворки, которые включает в себя новый проект (UIKit и NSFoundation, возможно, другие).

2
Kendall Helmstetter Gelner

Добавьте файл .m для компиляции исходной страницы.

шаги: -

  1. нажав на проект в меню навигации
  2. выберите цель
  3. выберите этапы сборки
  4. Нажмите кнопку + и добавьте файл в исходники компиляции. 

Надеюсь, что кто-нибудь поможет с этой проблемой

1
Neenu

У меня тоже была такая же проблема с 45 одинаковыми добрыми ошибками, когда я добавлял libxml2.dylib в свой проект, ошибки исчезали. 

0
Easwaramoorthy K

У меня была эта проблема, теперь, по моим обстоятельствам, я выбрал более свежую версию iOS, поскольку цель развертывания исправила это для меня. Мой проект был настроен на развертывание на iOS 5 по умолчанию, и изменение его на 7 (самое последнее) помогло.

Для любого новичка в разработке iOS это можно сделать, щелкнув файл проекта XCode в навигаторе> информация о развертывании> цель развертывания и выбрав соответствующую версию в раскрывающемся меню.

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

0
user3032314

Проблемы пробелы на вашем пути:

xcode использует следующий переключатель для компоновщика:

-F/Users/bbrandy95/Documents/Broken Brandsonic Web Projects/Brandsonic Web mobile/../../Downloads/0.2.1gm1/iphoneos4.0/System/Library/Frameworks

и поскольку он не указан, он не будет работать. (Ищет папку "/Users/bbrandy95/Documents/Broken"

Вам следует переименовать каталоги или просмотреть настройки проекта и добавить кавычки в каталоги. (Но это может быть сложно найти)

0
Bastian

В некоторых случаях путь поиска в вашей библиотеке пуст. Потому что существует много ошибок компоновщика Apple-mac-o.

Смотрите мой ответ также на.

Ошибка компоновщика Apple Mach-O при использовании классов базовых данных в OCUnit

0
Gajendra K Chauhan

Это потому, что проект вставил файл основных данных xcdatamodeld в исходники компиляции. Выберите ваш проект -> Build Phases -> Compile Sources и удалите файл projectName.xcdatamodeld . А также проверьте, импортировали ли вы файл .m вместо файла .h, он также выдает ту же ошибку компоновщика. Проверьте все коды #import . И проверьте, добавили ли вы работу с базовыми данными в библиотеку и импортировали файл с основными данными .h. Проверьте создание NSManagedObject и импортируйте его файл . Просто попробуйте и ответьте мне, если все еще ошибка.

0
user8065217

Я столкнулся с этой проблемой с моим самостоятельно разработанным Cocoapod.

Ошибка была: ошибка Apple Mach-O Linker

Оказалось, что я определил протокол и реализовал расширение протокола. Один из методов расширения протокола был общедоступным, а сам протокол - нет. И это вызвало ошибку Apple Mach-O Linker.

Пример:

протокол MyProtocol {поле var: String {get}}

расширение MyProtocol { public func giveMeSomething () -> String}

открытый класс MyClass: MyProtocol {}

В описании упоминается ошибка MyClass, на которую ссылается MyProtocol -> MyProtocol, на которую ссылается giveMeSomething () ...

Таким образом, решение было сделать Myprotocol также public

Надеюсь, что это помогает кому-то.

0
scrat84

У меня такая же проблема,

Я просто устанавливаю параметр сборки -> Enable Bitcode в NO

0
Vineesh TP