Ошибка компоновщика Mach-O на Xcode 4.6

У меня есть приложение iOS на Xcode 4.6, и когда я недавно пытался создать и запустить в симуляторе iPhone 6.1, я получил «ошибку компоновщика Mach-O». Он продолжал говорить:

ld: 17 дубликатов символов для архитектуры i386 clang: ошибка: команда компоновщика не удалась с кодом выхода 1 (используйте -v, чтобы увидеть вызов)

Кто-нибудь знает, как это решить?

Спасибо!

10 Solutions collect form web for “Ошибка компоновщика Mach-O на Xcode 4.6”

Просто зайдите в «Build Phases» -> «Compile Sources» и найдите дубликаты классов.

Проверьте, есть ли у вас файлы * .m в #import ! Кажется, это была моя ошибка …

В моем примере я объявил

 extern NSString const *keyString 

в двух разных файлах. Я переименовал один из них, и он решил мою проблему.

  1. Выйти из Xcode
  2. Перезапустить систему
  3. Выберите Xcode -> Настройки -> Местоположение
  4. В разделе «Местоположения» вы увидите «Производные данные». Нажмите на значок стрелки рядом с дорожкой.
  5. Это откроет папку, содержащую «Производные данные», удалив ее.
  6. Очистите продукт и выполните

    если все еще не работает

    Настройки сборки> Включить биткод> Нет введите описание изображения здесь

В моем случае это были константы.

 NSString *const cellID = @"cellID"; 

Эта строка была написана в двух файлах .m. После добавления static ключевого слова в начале проблема была решена.

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

Я не уверен, что смогу дать вам решение, но я поделюсь ответом, так как то же самое произошло и с xCode 4.6. Я добавил заголовок класса C и файл реализации и включил их в main. Затем я решил удалить этот новый заголовок и реализацию класса C. Когда я снова добавил новый класс c / header c тем же именем и вызовами функций, я закончил с вашей ошибкой.

Честно говоря, это может быть ошибкой. Единственный и быстрый способ, с помощью которого я зафиксировал это, – это запустить новый проект и потянуть все классы.

Удостоверьтесь, что у вас нет не-мгновенных методов с одним и тем же именем в нескольких классах (например, если у меня есть два диспетчера видимости, которые очень похожи, поэтому для быстрого перемещения я копирую и вставляю код с одного контроллера представления во второй, и оба они есть методы, называемые такими же: NSMutableString * filterStringFromStringWithFilter (NSString * string, NSString * filter)), тогда приложение запутывается, какой из этих методов использовать, поскольку они оба доступны, RENAME IT во втором классе и изменять любые вызовы на этот метод в этом классе, и вы устранили путаницу. Разве мы не хотим, чтобы вещи были более ясными!

Если вы хотите изменить значение как в буксировке другого класса. Не забывайте отмечать статическими ключевыми словами.

или clang произведет такую ​​ошибку ниже без какой-либо интерпретации значений.

Apple Mach-O Linker Ошибка clang: ошибка: сработала команда компоновщика с кодом выхода 1

Когда вы реорганизуете функцию класса, вы также иногда получаете эту ошибку. Просто зайдите в Product-> Clean и перестройте.

Build Phases "->" Compile Sources "нажмите кнопку" Проверить настройки "

он исправит ваш проект

  • .app файл не найден в Производных данных
  • Изменение размера кнопки в iOS программно
  • Где установить переменные среды для приложения?
  • XCode не хватает некоторых отладочных символов iOS
  • Как получить созданный Storyboard UIViewController без использования локалей в UIPopover?
  • Xcode 4.6 автоматическое право не работает - «нет действительной aps-environment»
  • Готовый запуск <App> на iPhone 6.1 Simulator
  • XCode: 4.6 Lion: 10.8 IOS 6.1 ошибка: SBTarget недействителен
  • UITextView не показывает параметры редактирования атрибутов для атрибута текста
  • Правильная реализация UISearchDisplayController
  • разница между приложением на основе страниц и представлением на основе
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.