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

Создание приложения для 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 - не повезло. Что вызывает это?

Ответ 1

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

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

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

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

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

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

Ответ 2

Я смог исправить это гораздо проще, просто выбрав "Продукт" > "Очистить", затем "Продукт" > "Создать" из контекстной меню Xcode.

Ответ 3

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

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

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

/var/folders/_w/t0mj70hd1439tqgxff7_mtt00000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders

Ответ 4

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

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

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

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

Ответ 5

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

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

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

Ответ 6

Извлеките содержимое для Simulator с помощью iOS Simulator > Reset Content and Settings... и нажмите Rest. Это приведет к удалению любых существующих предварительно скомпилированных экземпляров заголовков и ресурсов. Это сработало для меня

Ответ 7

Решение:

1) Product- > Clean

2) Product- > Построить

Тип ошибки:

вид ошибки сборки

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

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

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

возможно, вы выбрали Jump To Definition и внесли некоторые изменения после выбора элемента управления каркасом.

Ответ 8

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

Ответ 9

Я пробовал прежде всего, но не использовал. Наконец, я удалил Xcode и снова установил. Теперь он отлично работает.

Xcode- > удалить- > установить снова

Это может помочь кому-то...

Ответ 10

У меня была ошибка на кордове, когда я бежал: 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/folders/gb/3cf6hy4x7z3d7hprls6xmd0m0000gr/C/com.apple.DeveloperTools/6.0-6A313/Xcode" и работает! Этот совет может помочь другим

Ответ 11

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