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 ]

5 голосов
/ 22 февраля 2012

Если вы используете CoreData и используете XCode для генерации подклассов NSManagedObject для ваших сущностей, убедитесь, что вы генерируете только один для каждой сущности.

Моя проблема заключалась в том, что он генерировал несколько подклассов NSManagedObject для одной и той же сущности(и положить их в разные папки).

Я просто удалил их все и заново создал подклассы NSManagedObject.

4 голосов
/ 12 января 2012

У меня была такая же проблема, и я ее решил.В моем случае проблема была связана с настройкой «архитектуры».В моем файле проекта на вкладке «Настройки сборки» для архитектуры было установлено значение armv6.Я поменял его на Standard (armv7), делаю чистку и сборку.Тогда это сработало!

4 голосов
/ 25 марта 2011

Не уверен, что это связано, но, видя, что вы используете три20 библиотек, вы можете проверить этот пост на их сайте: http://three20.info/article/2011-03-10-Xcode4-Support

4 голосов
/ 21 февраля 2012

В моем случае проблема заключалась в том, что разные архитектуры указывались для разных целей.Я строил свою цель приложения с armv6, armv7 и cocos2d с помощью Standard (amrv7).Зайдите в настройки сборки и убедитесь, что ваша архитектура соответствует всем целям.

4 голосов
/ 31 октября 2014

Я решил эту проблему слишком странно!

Перейдите на Target > Build Phases > Link Binary с библиотеками :

Удалите все ваши фреймворки и добавьте их снова!

Надеюсь, это работает для вас!

4 голосов
/ 16 мая 2015

Для языка Swift ...

Я получаю эту ошибку "ld: file too small (length = 0) ...."

В моем случае я просто очищаю проекти затем восстановить его ..

Шаги: -

1) Перейти к проекту -> Очистить

2) Перейти к проекту -> Сборка

Надеюсь, это поможет..

4 голосов
/ 09 мая 2016

Это помогло мне:

Перейти к

1) Продукты> clean

2) Windows> Проекты

3) Выберите проект и нажмите « Удалить » Производные данные

4) Продукты> Сборка

3 голосов
/ 23 марта 2012

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

3 голосов
/ 01 апреля 2011

Одна возможность: включить «Удаление мертвого кода» в настройках сборки Xcode 4.

Другая возможность: возможно, вы переключились на использование LLVM для некоторой среды, которая ранее использовала GCC. Возвращение к GCC (или LLVM GCC) может избавить от этих предупреждений.

3 голосов
/ 24 июня 2015

Code Signinig !!!

У меня тоже была эта проблема - "Сбой команды компоновщика с кодом выхода 1 (используйте -v для просмотра вызова)"

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

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