Ошибка утверждения компоновщика xcodebuild

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


0 0x10163b342 __assert_rtn + 144 1 0x101678a3a archive::File<arm64>::makeObjectFileForMember(archive::File<arm64>::Entry const*) const + 1138 2 0x1016783e8 archive::File<arm64>::justInTimeforEachAtom(char const*, ld::File::AtomHandler&) const + 122 3 0x10168ea75 ld::tool::InputFiles::searchLibraries(char const*, bool, bool, bool, ld::File::AtomHandler&) const + 265 4 0x101697db8 ld::tool::Resolver::resolveUndefines() + 160 5 0x10169a117 ld::tool::Resolver::resolve() + 79 6 0x10163c060 main + 812 7 0x7fff9dd4c5ad start + 1 A linker snapshot was created at: /tmp/MyKit-2016-02-31-154836.ld-snapshot ld: Assertion failed: (memberIndex != 0), function makeObjectFileForMember, file /Library/Caches/com.apple.xbs/Sources/ld64/ld64-253.9/src/ld/parsers/archive_file.cpp, line 355. clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Согласно исходному коду archive_file.cpp ( http://www.opensource.apple.com/source/ld64/ld64-253.3/src/ld/parsers/archive_file.cpp ), похоже, что есть некоторая символьная коррупция, а ld – загрузка библиотеки. Но кроме этого я не знаю, как эта проблема может быть исправлена.

Эта проблема возникает только тогда, когда я пытаюсь создать свою фреймворк с помощью битового кода, добавив флаг компилятора «-fembed-bitcode».

Кроме того, в моей команде ld я пытаюсь установить связь с несколькими статическими библиотеками, одна из которых -> 4.25 ГБ (с встроенным встроенным битовым кодеком), и этот размер превышает максимальное значение 32-битного целого числа без знака (~ 3,99 ГБ) , Я ранее сталкивался с несколькими проблемами с libtool, связанными с невозможностью обработки больших двоичных библиотек, поэтому это одно из моих подозрений.

Интересно, видел ли кто-нибудь подобные проблемы или выяснил, как это исправить? благодаря

несколько связанных вопросов

Weird xCode linker error Я никогда не видел, прежде чем говорить «Assertion failed»

https://github.com/SciRuby/nmatrix/issues/69

http://lists.llvm.org/pipermail/llvm-dev/2013-October/066722.html

https://github.com/TrinityCore/TrinityCore/issues/14689

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57438

  • iOS armv7: как разрезать (слишком) большой объект до связывания
  • Почему приложение неожиданно не строит и не жалуется на ошибки «ld» и «clang»?
  • как связать статическую библиотеку для iOS
  • ld: xx дубликаты символов для архитектуры armv7 Xcode Project
  • 2 Solutions collect form web for “Ошибка утверждения компоновщика xcodebuild”

    Вы хотите прочитать объяснение своей ошибки: ld: Assertion failed: (memberIndex != 0) ... ? Перейдите по этой ссылке

    Кроме того, не беспокойтесь о размере вашей статической библиотеки. Компилятор удалит всю ненужную информацию в конечном исполняемом файле. Пожалуйста, прочтите здесь

    TL; Версия DR:

    1. Очистите свой проект с помощью Command-Option-Shift-K . Также выберите « Window > Organizer и перейдите на вкладку « Projects ». Нажмите правую стрелку справа от имени папки Derived Data , удалите папку Derived Data и перезапустите XCode.

    2. перейдите в « Build Settings вашего project's settings => Найти Linking->Other linker flags => Добавить -v . Это покажет вам точный поврежденный файл, который вызывает вашу ошибку, если он все еще встречается. Если у вас есть ошибка снова, напишите здесь путь к поврежденному файлу, мы можем работать оттуда.

    3. Причина вашей ошибки связана с повреждением одной из ваших статических библиотек . Вы можете удалить свою 4.25gb lib и перестроить снова, чтобы убедиться, что это проблема. Он находится под target settings -> build phases -> link binary with libraries вашего проекта target settings -> build phases -> link binary with libraries . Если ошибка исчезнет, ​​это может быть так. В этом случае, не забывайте указывать имя lib?

    Просто добавив к ответу oasisweng.

    Предоставляет ли одна из следующих справок ?:

    • Каждый раз, когда я обновляю Xcode, я получаю ошибки компоновщика с установленным Brew GCC
    • Вы зависимы от любых зависимостей, у которых нет Биткода ?
    • Подобная ошибка сообщается на форуме Unity ; Посмотреть последнее сообщение в теме
    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.