Ответ 1
Кража @martin-baulig ответ:
Попробуйте полностью перестроить/очистить. Возможно, предыдущая сборка была аномально прервана, оставив файл TWRAppDelegate.o поврежденным или нулевым.
Я разрабатываю приложение в Xcode.
Когда я пытаюсь построить, эта ошибка возникает:
ld: in /Users/theodore/Library/Developer/Xcode/DerivedData/Tower-bkpdifuqssebjdgurzmtirbxejnn/Build/Intermediates/Tower.build/Debug/Tower.build/Objects-normal/x86_64/TWRAppDelegate.o, file too small for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Кто-нибудь знает, что неправильно?
Кража @martin-baulig ответ:
Попробуйте полностью перестроить/очистить. Возможно, предыдущая сборка была аномально прервана, оставив файл TWRAppDelegate.o поврежденным или нулевым.
Обычно я добавляю в этот файл пробел (может быть любой символ), удалять его и затем сохранять. Легче и быстрее, чем чистая сборка.
rm -rf /Users/hostname/Library/Developer/Xcode/DerivedData
Поскольку создание чистого проекта может занять слишком много времени, тем меньше возможностей для тех, у кого есть доступ к файлу, который поврежден в кеше:
Полная версия, поэтому вам не трудно найти файл:
Вы можете просто удалить файл TWRAppDelegate.o и продолжить сборку. Скопируйте полный путь, указанный в сообщении об ошибке, и вставьте его за команду "rm" в вашем терминале. Нет необходимости чистить/перестраивать, удалять производные данные, добавлять/удалять файл из проекта и т.д.
просто удалите этот файл, запустив cmd в своем приложении терминала:
rm /Users/theodore/Library/Developer/Xcode/DerivedData/Tower-bkpdifuqssebjdgurzmtirbxejnn/Build/Intermediates/Tower.build/Debug/Tower.build/Objects-normal/x86_64/TWRAppDelegate.o
Шаг 1. Перейдите в: Проект > Настройки сборки > Пути поиска
Шаг 2. Установите "Всегда искать пользовательские пути" на "Да"
Шаг 3. Постройте проект (вы получите предупреждение, но проект будет построен.)
Шаг 4. Установите "Всегда искать пользовательские пути" обратно в "Нет" и снова создайте, чтобы исключить предупреждение
Чистая перестройка не была в моем случае, поэтому я объясню, как я решил проблему:
- Удалена ссылка на файл (не удаляйте файл)
- снова добавьте файл в проект и запустите
Чтобы автоматически решить эту проблему, можно добавить Build Script Phase
. Перейти к Xcode → Ваш проект → Ваша цель → Фазы сборки → + → Фаза нового запуска скрипта
Переименуйте его в Xcode Link Fix
и переместите его выше фазы Compile Sources
. Вставьте это в тело скрипта:
# Legacy build system
dirname "$LD_DEPENDENCY_INFO_FILE" | xargs -I {} find {} -size 0 | while read -d $'\n' file; do
rm "$file"
done
# New build system
find "$OBJECT_FILE_DIR_normal" -size 0 | while read -d $'\n' file; do
rm "$file"
done
Этот скрипт проверяет наличие объектных файлов с нулевым размером и удаляет их, поэтому, когда компиляция будет выполнена на следующем шаге, она будет успешной.
Вам нужно добавить этот скрипт для каждой цели приложения, если у вас их много.
Этот сценарий занимает ~ 0,1 секунды для запуска и спасает вас от полной перестройки проекта.