Apple Mach-O Linker Ошибка при компиляции для устройства - PullRequest
237 голосов
/ 16 марта 2011

Я только что обновился до xcode 4.0 и больше не могу развертываться на iPhone, я получаю ошибку компоновщика Apple Mach-O, хотя она все еще работает для симулятора.

    Ld /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Intermediates/iParcel.build/Debug-iphoneos/iParcel.build/Objects-normal/armv7/iParcel normal armv7
    cd /Users/yveswheeler/iParcel
    setenv IPHONEOS_DEPLOYMENT_TARGET 3.2
    setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++-4.2 -arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk -L/Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos -F/Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos -filelist /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Intermediates/iParcel.build/Debug-iphoneos/iParcel.build/Objects-normal/armv7/iParcel.LinkFileList -dead_strip -all_load -ObjC -lxml2 -miphoneos-version-min=3.2 -framework UIKit -framework CoreGraphics -framework QuartzCore /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Core.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Network.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Style.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UI.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UICommon.a /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UINavigator.a -framework AddressBook -lz.1.2.3 -framework Foundation -framework CFNetwork -framework MobileCoreServices -framework SystemConfiguration -framework MessageUI -framework AudioToolbox -o /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Intermediates/iParcel.build/Debug-iphoneos/iParcel.build/Objects-normal/armv7/iParcel

arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Core.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Network.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20Style.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UI.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UICommon.a: No such file or directory
arm-apple-darwin10-g++-4.2.1: /Users/yveswheeler/Library/Developer/Xcode/DerivedData/iParcel-fkeqjcjcbbhjwhdssjptkdxzzzxh/Build/Products/Debug-iphoneos/libThree20UINavigator.a: No such file or directory
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++-4.2 failed with exit code 1

Ответы [ 67 ]

3 голосов
/ 04 апреля 2012

Мне удалось исправить эту ошибку, отредактировав «Пути поиска в библиотеке»

Сначала он возник, потому что я переместил пару папок, и в результате у моих настроек сборки были два разных пути поиска, потому что они автоматически добавляются в ваши настройки сборки, когда вы связываете библиотеку / инфраструктуру, но они не всегда удаляются.

Таким образом, если вы переместите связанную библиотеку / каркас в другой каталог и заново создадите ссылку, вам придется вручную отредактировать путь поиска.

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

3 голосов
/ 13 апреля 2017

Если вы определили объект NSObject с таким же именем, например:

NSObject *notUniqueObj;

даже в 2 разных файлах (если вы импортируете один в другой), он выдаст вам ошибку.Дайте разные имена для них.

3 голосов
/ 17 декабря 2013

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

3 голосов
/ 22 октября 2016

для меня проблема была в том, что я загружал одни и те же функции дважды. Удалить -ObjC из Настройки сборки > Связывание > Другие флаги компоновщика .

2 голосов
/ 11 августа 2013

Мое исправление для моей той же проблемы: добавление «других флагов компоновщика» в «Project», а не в «Targets».Итак, я переместил его в «Targets», его не должно быть в «Project».

2 голосов
/ 30 января 2013

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

2 голосов
/ 27 ноября 2012

Для меня было ошибкой архитектуры при запуске на устройстве в XCode 4.5.x.

XCode 4.5 больше не поддерживает armv6, поэтому мое исправление было следующим:

Я только что отредактировал все цели во всех библиотеках (three20Core, three20Common и т. Д.) И libThree20: в настройках сборки естьвыбраны только armv7 и armv7s в «Архитектурах» и «Действительных архитектурах»

2 голосов
/ 25 января 2014

Я случайно пытался скомпилировать для 64-битного симулятора, который не соглашался с моими CocoaPods

2 голосов
/ 29 июля 2018

Решение этой проблемы очень просто Просто зайдите в каталог, где установлен проект и откройте файл с расширением ".xcworkspace"

Это решит проблему.

2 голосов
/ 01 октября 2014

Я бегу xcode 5. В моем случае я должен изменить свою «цель развертывания» . Ранее он был установлен как 3.0, и я изменяю его на 7.0 Теперь сообщение об ошибке исчезло. Чтобы изменить «цель развертывания» , выполните шаги:

  • Перейти к вашему «Название проекта» (вверху слева)
  • Перейдите к «Целям» (в середине экрана)
  • Перейти к «Общее»
  • «Информация о развертывании»
  • "Цель развертывания"

Измените его на текущую версию iOS. -Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...