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 ]

0 голосов
/ 07 июля 2014

Если вы использовали XCode для создания пользовательского класса NSManagedObject, а затем добавили к нему и сгенерировали новый файл для пользовательского класса, иногда XCode не будет перезаписывать ваш старый класс, и вы застрянете с двумя одинаковыми файлами, но в другом каталоги. Найдите старый файл и удалите его.

Проблема может быть в другом.

0 голосов
/ 10 октября 2014

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

0 голосов
/ 14 апреля 2016

В моем случае

Я только что удалил armv7s и armv64 и собрал их работы.

0 голосов
/ 22 ноября 2013

Чтобы устранить эту проблему, выполните следующие действия:

Перейдите в настройки проекта и вкладку «Сборка».Поиск «Другие флаги компоновщика»

Двойной щелчок по флагам компоновщика для выпуска и изменения:

 ${TARGET_BUILD_DIR}/libCordova.a to ${BUILT_PRODUCTS_DIR}/libCordova.a

Сделайте то же самое для Отладка Очистка и сборка архивирование снова.

0 голосов
/ 12 июня 2014

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

0 голосов
/ 01 сентября 2016

В моем собственном случае у меня были дублированные объявления некоторых ключей. Я объявил некоторые константы NSString с помощью ключевого слова extern и сделал то же самое в двух разных файлах классов. Когда я удалил один из них, ошибка исчезла.

extern NSString *const CFDataStatusKey;
extern NSString *const CFDataErrorKey;
extern NSString *const CFDataReasonKey;
extern NSString *const CFDataChannelsKey;

Они были объявлены и инициализированы соответственно в файлах .h и .m двух классов. Удаление дубликата решило проблему. Надеется, что это поможет

0 голосов
/ 26 мая 2014

У меня была такая же проблема минуту назад.что привело меня сюда, что не было никакой помощи.Но я разобрался в чем проблема и исправил ее.проблема заключалась в том, что в моем заголовочном файле я объявил один экземпляр класса структуры с именем trig_node [SIZE]

мой заголовок ...

struct TrigNode
{
    float msin;
    float mcos;
    float mtan;
}trig_node[SIZE];

и в моем файле .cpp у меня естьфункция, которая обращается к этому экземпляру и возвращает ответ.

float cos_table_(float deg)
{
    uint n = ((SIZE/DEGRE)*deg);
    return trig_node[n % DEGRE].mcos;
}

, что вызывает мою ошибку компоновки.Итак, чтобы исправить это, я помещаю экземпляр класса таблицы триггеров "trig_node [SIZE]" в файл .cpp, который устранил ошибку.так что теперь новое исправление выглядело примерно так

мой заголовок ...

struct TrigNode
{
    float msin;
    float mcos;
    float mtan;
};

мой .cpp файл trig_node [SIZE]

float cos_table_(float deg)
{
    uint n = ((SIZE/DEGRE)*deg);
    return trig_node[n % DEGRE].mcos;
}
0 голосов
/ 30 августа 2012

У меня возникла эта проблема после импорта фреймворка. В разделе «Этапы сборки» имя платформы было выделено красным цветом. Я снова добавил фреймворк, и проблема была решена.

0 голосов
/ 29 апреля 2014

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

0 голосов
/ 23 января 2017

Я должен был убедиться, что мой фреймворк был построен с выбранным симулятором, чтобы построить мой проект с помощью симулятора (мой проект, конечно, использует фреймворк). То же самое касается сборки на моем iPhone, все должно быть синхронизировано, не знаю почему, но это решает проблему.

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

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