Nano Hash - криптовалюты, майнинг, программирование

ld: предупреждение: раздел __DATA/__objc_imageinfo__DATA имеет неожиданно большой размер

Кто-нибудь знает, что означает это предупреждение? Далее следует ошибка:

Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 failed with exit code 1

Это проект Xcode для iPad. Я вижу это только тогда, когда компилирую для симулятора, а не для устройства. Я связал статическую библиотеку (*.a) с этим проектом, и именно здесь я думаю, что это не удается. Кроме того, раньше он работал на симуляторе без проблем, и я не уверен, что изменилось.

Весь вывод компилятора:

Ld /Users/cduckering/Library/Developer/Xcode/DerivedData/IQ-bldfqilntfqfrccozykbqulagovx/Build/Products/Debug-iphonesimulator/IQ.app/IQ normal i386
    cd /Users/cduckering/Desktop/LitePoint/Apps/App/IQ
    setenv MACOSX_DEPLOYMENT_TARGET 10.6
    setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk -L/Users/cduckering/Library/Developer/Xcode/DerivedData/IQ-bldfqilntfqfrccozykbqulagovx/Build/Products/Debug-iphonesimulator -F/Users/cduckering/Library/Developer/Xcode/DerivedData/IQ-bldfqilntfqfrccozykbqulagovx/Build/Products/Debug-iphonesimulator -filelist /Users/cduckering/Library/Developer/Xcode/DerivedData/IQ-bldfqilntfqfrccozykbqulagovx/Build/Intermediates/IQ.build/Debug-iphonesimulator/IQ.build/Objects-normal/i386/IQ.LinkFileList -mmacosx-version-min=10.6 -dead_strip -ObjC -all_load -fprofile-use -Xlinker -objc_abi_version -Xlinker 2 -lCorePlot-CocoaTouch -weak_framework QuickLook -weak_framework MessageUI -framework QuartzCore -framework UIKit -framework Foundation -framework CoreGraphics -Xlinker -object_path_lto -Xlinker /Users/cduckering/Library/Developer/Xcode/DerivedData/IQ-bldfqilntfqfrccozykbqulagovx/Build/Intermediates/IQ.build/Debug-iphonesimulator/IQ.build/Objects-normal/i386/IQ.lto_temporary.o -o /Users/cduckering/Library/Developer/Xcode/DerivedData/IQ-bldfqilntfqfrccozykbqulagovx/Build/Products/Debug-iphonesimulator/IQ.app/IQ

ld: warning: section __DATA/__objc_imageinfo__DATA has unexpectedly large size 368 in /Users/cduckering/Library/Developer/Xcode/DerivedData/IQ-bldfqilntfqfrccozykbqulagovx/Build/Intermediates/IQ.build/Debug-iphonesimulator/IQ.build/Objects-normal/i386/IQ.lto_temporary.o
Assertion failed: (_mode == modeFinalAddress), function finalAddress, file /SourceCache/ld64/ld64-123.2/src/ld/ld.hpp, line 573.
0  0x10001286c  __assert_rtn + 76
1  0x10008c71c  ld::tool::OutputFile::addressOf(ld::Internal const&, ld::Fixup const*, ld::Atom const**) + 188
2  0x10008ed58  ld::tool::OutputFile::applyFixUps(ld::Internal&, unsigned long long, ld::Atom const*, unsigned char*) + 2840
3  0x10008b62e  ld::tool::OutputFile::writeOutputFile(ld::Internal&) + 814
4  0x10008431c  ld::tool::OutputFile::write(ld::Internal&) + 156
5  0x100012e3f  main + 1247
6  0x100000e14  start + 52
collect2: ld returned 1 exit status
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 failed with exit code 1

Ответы:


1

Эта ошибка является внутренней ошибкой, которая возникает, когда компилятор LLVM не находит символ, который он ожидает найти на заключительном этапе оптимизации времени компоновки. Распространенной причиной является связывание со статической библиотекой, в которой были удалены некоторые важные символы (во время связывания самой статической библиотеки не возникнет ошибки, хотя она была бы, если бы библиотека была связана динамически).

Хотя существует также ошибка, из-за которой LLVM не сообщает об истинной ошибке, правильное исправление состоит в том, чтобы убедиться, что статические библиотеки добавляют все символы, которые они должны использовать во время компоновки. Попробуйте проверить параметры сборки для статических библиотек, включенных в проект, и убедитесь, что удаление связанного продукта (файл .a) либо отключено, либо настроено на удаление только символов отладки.

Если вы не контролируете сборку статической библиотеки, обходной путь — отключить оптимизацию времени компоновки в LLVM, хотя это может привести к созданию неоптимального кода.

18.06.2012

2

Решено.

Это предупреждение и ошибка исчезают, когда я изменяю параметр сборки под названием «Версия компилятора C/C++» с «LLVM GCC 4.2» на «GCC 4.2».

01.09.2011
  • Это точно. Похоже, новый компилятор еще не готов к работе в прайм-тайм. У меня была аналогичная проблема с компиляцией кода Mac. Сборка отладки работает, но не может скомпилировать сборку выпуска из-за проблемы, аналогичной вашей, и проблема возникла при связывании динамической библиотеки. 04.10.2011

  • 3

    Я получаю «неожиданно большой размер» только тогда, когда включен параметр сборки «Оптимизация времени соединения» (LLVM_LTO = YES). Я рекомендую оставить его отключенным (по умолчанию).

    20.01.2012
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..