Что означают эти предупреждения Dsymutil в XCode 4.5?
Я связываю статическую среду для iOS с приложением armv7 ios 6, я подозреваю, что исходные двоичные файлы взяты из XCode 3.x и были скомпилированы с GCC, и теперь я связываю его с помощью компилятора CLang. У меня нет исходного кода для фреймворка, только двоичные файлы:
(null): warning: (armv7) /.../DerivedData/.../armv7/HardwareObjectFile.o unable to open object file
Я получил 69 предупреждений, подобных приведенным выше, по одному на каждый файл.o, связанный со статической структурой.
Это предупреждение серьезно по какой-либо причине? Я упростил гигантский путь, который, по-видимому, указывает на то, что двоичные файлы в библиотеке жестко закодировали путь в "/Users/somedeveloperthatisntme", который вряд ли может помочь, но не существует, поскольку я использую эту библиотеку на компьютере, который даже не есть папка с именем "Users / somedeveloperthatisntme".
Dsymutil, похоже, является инструментом для "манипулирования архивированными файлами символов отладки DWARF", хотя я точно ничего не знаю о том, что это такое и что он делает, несмотря на подробную документацию Apple, которая говорит мне, что, но никогда, почему. Что он делает, и что это предупреждение будет значить для меня? Я подозреваю, что мне нужна новая библиотека /static-framework от производителя, чтобы прояснить это?
Обновление: я не могу решить эту проблему, и, кажется, причина кроется в очень старых двоичных файлах, скомпилированных очень старой версией XCODE, поставляемых как часть мобильной платформы от стороннего поставщика. Проблема в этом случае будет решена с помощью того, что этот поставщик перестроит свою библиотеку, и я попросил их сделать это, потому что предупреждения сводили меня с ума, но, похоже, они не смогли этого сделать. В конце концов я отказался от их технологий и заменил их чем-то другим. (Гринь)
5 ответов
Другие ответы содержат полезную информацию, но я хотел бы кратко изложить реальный ответ:
Вы не можете это исправить, и смысл ошибок прост: текущий компоновщик видит эти библиотечные файлы как содержащие элементы, которые нельзя открыть.
Чтобы устранить предупреждения, обратитесь к поставщику и получите перекомпилированную библиотеку, которая была перестроена с использованием более поздней версии CLANG.
Эти ошибки связаны с используемой архитектурой и ресурсами, на которые вы ссылаетесь. Я сам не понимаю причин, но если вы хотите, чтобы они исчезли, зайдите в Настройки сборки, затем Параметры сборки, затем выберите формат информации отладки и выберите DWARF.
Я нахожусь на другой стороне этого, создавая библиотеку для использования другими, и я смог изменить проект библиотеки, установив "GCC_GENERATE_DEBUGGING_SYMBOLS = NO" в настройках сборки, чтобы эти предупреждения исчезли в проекте приложения, который использовал выходной каркас.
Это не решение вашей проблемы, но если вы связываетесь с этим поставщиком, вы можете передать его.
Я просто удалил папку /Library/Developer/Xcode/DerivedData, и это все исправило.
Другая причина, по которой эти предупреждения могут появляться, связана с неправильными настройками разбивки символов для сборок релизов в проекте. Свяжитесь с автором фреймворка и попросите его создать новый двоичный файл с правильными настройками удаления символов.