Фатальная ошибка Xcode 4.1: stdlib изменен, так как был скомпилирован предварительно скомпилированный заголовок - PullRequest
73 голосов
/ 16 августа 2011

Создание приложения для iPhone, используя:

  • Xcode 4.1
  • Базовый SDK iOS 4.3
  • Apple LLVM Compiler 2.1

Я начал получать следующую ошибку:

фатальная ошибка: файл '/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/../lib/clang/2.1/include/stdint.h' был изменен с момента сборки предварительно скомпилированного заголовка

Я попытался переустановить Xcode и OS X - не повезло. Что вызывает это?

Ответы [ 11 ]

153 голосов
/ 16 августа 2011

Сначала попробуйте чистую сборку через меню Product -> Clean (начиная с XCode 4.6.2).

Если это не помогло, откройте Organizer (в меню выберите Window-> Organizer).После открытия Организатора выберите «Проекты» на панели инструментов в верхней части окна.Слева находится список проектов, выберите тот, с которым у вас возникли проблемы.

Панель сведений (справа от списка) будет отображать название проекта, местоположение, статус.Строка ниже показывает, где находятся производные данные.Нажмите кнопку Удалить ... в крайнем правом углу.Появится диалоговое окно, нажмите «Удалить».

Вы также можете вручную удалить производные данные:

~/Library/Developer/Xcode/DerivedData/{project name + gobly-gook}

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

76 голосов
/ 13 марта 2012

Мне удалось исправить это гораздо проще, просто выбрав Product> Clean, затем Product> Build из меню Xcode.

37 голосов
/ 12 сентября 2011

Удаление папки DerivedData не работало для меня при архивации.

Мне пришлось взглянуть на Настройки сборки - Местоположения сборки - Путь скомпилированного заголовка кэша и удалить эту папку.

Для меня это было:

/var/folders/_w/t0mj70hd1439tqgxff7_mtt00000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders
16 голосов
/ 02 ноября 2011

Я подумал, что добавлю отдельный ответ, а не комментарий к ответу Cryptognome, потому что на самом деле это другое решение, когда проблема возникает при запуске xcodebuild.Как и в Cryptognome, у меня возникла ошибка с инструментом командной строки xcodebuild.В качестве альтернативы ручному переходу в подпапки /var я обнаружил, что могу установить свой собственный кэш для общего PCH, что можно сделать, установив переменную среды SHARED_PRECOMPS_DIR, например, следующим образом

xcodebuild -target Foo -configuration Release SHARED_PRECOMPS_DIR=/tmp/foo/SharedPCH

Таким образом, я никогда не получаю сообщение об ошибке в автоматических сборках.

Обратите внимание, что в приведенной выше команде я бы также обычно устанавливал переменные OBJROOT и SYMROOT env для встраивания также в / tmp.В конце я убираю вещи.

4 голосов
/ 05 октября 2011

Средство командной строки xcodebuild иногда не работает с этой ошибкой. Это случилось со мной, когда я синхронизировал рабочее пространство SVN с более ранней сборкой. Инструмент xcodebuild хранит свои предварительно скомпилированные заголовки в указанной папке:

/var/folders/... scrambled eggs .../-Caches-/com.apple.Xcode.503/SharedPrecompiledHeaders/

Вы должны заглянуть в саму команду сборки, чтобы увидеть фактическое имя папки (-include / var / ...), но она может использовать несколько, если вы строите для разных архитектур (arm6, arm7, simulator, Например, если у вас возникла эта проблема при сборке из командной строки, просто удалите все в /var/.../SharedPrecompiledHeaders.

3 голосов
/ 01 августа 2013

Решение:

1) продукт-> Clean

2) продукт-> Build

Тип ошибки:

своего рода ошибка сборки

Одна из причин:

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

Один из сценариев:

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

3 голосов
/ 15 августа 2012

Удалите содержимое для симулятора с помощью iOS Simulator> Сбросить содержимое и настройки ... и нажмите Rest.Это удалит все существующие предварительно скомпилированные экземпляры заголовков и ресурсов.Это сработало для меня

1 голос
/ 31 мая 2013

Мне удалось избавиться от этой ошибки, просто очистив (команда + shift + K) и перестроив.

0 голосов
/ 17 декабря 2014

Clean способы не работают для меня, в конце концов я решил эту проблему путем переустановки XCode.

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

У меня была эта ошибка на кордове, когда я запустил: cordova run ios

fatal error: file '/Users/.../cordova/platforms/ios/CordovaLib/CordovaLib_Prefix.pch' has been modified since the precompiled header
  '/var/folders/gb/3cf6hy4x7z3d7hprls6xmd0m0000gr/C/com.apple.DeveloperTools/6.0-6A313/Xcode/SharedPrecompiledHeaders/CordovaLib_Prefix-bfgesbulnxtdepfwgniffeysypgv/CordovaLib_Prefix.pch.pch' was built
note: please rebuild precompiled header
  '/var/folders/gb/3cf6hy4x7z3d7hprls6xmd0m0000gr/C/com.apple.DeveloperTools/6.0-6A313/Xcode/SharedPrecompiledHeaders/CordovaLib_Prefix-bfgesbulnxtdepfwgniffeysypgv/CordovaLib_Prefix.pch.pch'
1 error generated.

** BUILD FAILED **    

The following build commands failed:
    CompileC build/CordovaLib.build/Debug-iphoneos/CordovaLib.build/Objects-normal/armv7/NSDictionary+Extensions.o Classes/NSDictionary+Extensions.m normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler
    CompileC build/CordovaLib.build/Debug-iphoneos/CordovaLib.build/Objects-normal/armv7/CDVInvokedUrlCommand.o Classes/CDVInvokedUrlCommand.m normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler

Я попытался с чистой и сборки, но не работает, наконец я удалил папку '/ var / folder / gb /3cf6hy4x7z3d7hprls6xmd0m0000gr / C / com.apple.DeveloperTools / 6.0-6A313 / Xcode 'и работает!Этот совет, возможно, поможет другим

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