Помилка компілятора версії Xcode версії 4.6.2 (4H1003)


88

Я щойно оновився до версії Xcode 4.6.2 (4H10003) і спробував запустити раніше працюючий проект програми в симуляторі, і отримав таку помилку, і збірка не вдалася.

Файл PCH, побудований з іншої гілки ((clang-425.0.27)), ніж компілятор ((clang-425.0.28))

Що пішло не так і як це можна виправити?


Я спробував зробити Продукт -> Очистити та видалити раніше створену програму з симулятора. Ні те, ні інше не працювали.
OscarTheGrouch

2
"Clean Build Folder" не вирішив мою проблему під час створення пристрою (пробували кілька разів). Мені довелося "Очистити папку збірки", побудувати до симулятора, потім побудувати на пристрій це було вирішено.
DBD

Відповіді:


183

Проведіть чистку проекту; утримуйте Option, щоб ви очистили всю папку збірки та проміжні продукти. Можливо, вам доведеться вийти з Xcode і викинути весь вміст папки DerivedData вручну у Finder, як я описую тут: Як очистити кеш-пам’ять та очистити всі цілі Xcode 4


Так, чистий працював і для мене. Помилка полягає лише в тому, що попередньо скомпільовані заголовки були побудовані з іншою версією і не сумісні з найновішою версією компілятора.
zingle-dingle

Якщо цього не сталося з вами на попередніх оновленнях Xcode, вам просто пощастило. Це сталося зі мною. Ви звикнете через деякий час ...
matt

Це спрацювало у мене після того, як я зробив «Чисту папку збірки» з утримуваною опцією. Дякую!
Лука

1
Це спрацювало для мене, дякую ... Я не знав, що проведення опції робить інший вид чистоти.
OscarTheGrouch

Це працює лише для побудови в Xcode. Якщо ви будуєте з командного рядка, дивіться публікацію Родріго Ліми нижче.
Джефф,

21

Перейдіть до проекту Build Settings, знайдіть налаштування з назвою Precompiled Headers Cache Path, а потім видаліть цю папку


Тільки ця дія допомогла мені зі згаданою проблемою. Дякую!
Orange


9

З XCode 4.6.2 Примітки до випуску

відомі проблеми

Будівництво

При створенні продукту, раніше побудованого за допомогою Xcode 4.6.1 або раніше, збірка не вдається з помилкою, подібною до цієї:

Файл PCH, побудований з іншої гілки ((clang-425.0.27)), ніж компілятор ((clang-425.0.28))

Щоб вирішити цю проблему, виберіть Продукт> Очистити, перш ніж будувати свій продукт. 13663167

Виконавчий продукт> Чисті роботи


1
Так, це була проблема з попередніми версіями, але визнано, що це варто згадати у примітках до випуску лише зараз. Крім того, вони не дають рішення для людей, які не використовують Xcode як IDE, як це робить @sycx (очищення шляху попередньо скомпільованого заголовка кешу).
A-Live

9

Я спробував усе вищезазначене, і він чудово працює з інтерфейсом Xcode, але для мене все ще не вдалося, коли я запустив xcodebuild із командного рядка .

Це було пов’язано із залежностями від інших бібліотек та їх заголовків попередньої компіляції. При запуску з командного рядка схоже на xcodebuild store / зчитує попередньо скомпільовані заголовки звідси:

/var/folders/v0/ztxy9kls7sv05dpmvjgg_xwr0000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders

Після очищення цієї папки xcodebuild вдалося.


2
Розташування цієї папки буде різним для всіх, тому швидкий спосіб знайти потрібну папку для очищення - це використовувати find + grep ... sudo find / var / folders | grep SharedPrecompiled
Greg Combs

1
У мене була та сама проблема. Не вдалося запустити з командного рядка, хоча я міг будувати з Xcode. У підсумку я запустив: sudo find /private/var/folders -name SharedPrecompiledHeadersа потім очистив отримані каталоги. Працював як оберіг.
Джефф,

Якби я міг надати цьому додатковий голос, я б. Безумовно, чистка, здається, не спрацьовує у мене під час створення з командного рядка. Я сподівався, що так буде, але знання, де шукати попередньо скомпільовані заголовки, було дуже корисним.
Джон Бауерс

4

Особливо, якщо ви будуєте з командного рядка або у вас є сценарій збірки, очищення цільового xcode недостатньо. Ви повинні видалити цю папку.

Точне розташування попередньо скомпільованого заголовка можна знайти в проекті, частина шляху до папки є випадковою (я думаю), особливо після /var/folders/xx..xxx/C.

Target -> build settings => "Build locations" -> Precompiled headers cached path

Запустіть Terminal і перейдіть до цієї папки та видаліть (використовуйте команду),

#rm -fr SharedPrecompiledHeaders

введіть тут опис зображення


Чудова відповідь! Але в мене там не було такої папки (навіть у підказці терміналу за допомогою ls -lAhF). Однак закриття Xcode, а потім видалення папки com.apple.Xcode.501 спрацювало чудово.
RedYeti

Точне розташування попередньо скомпільованого заголовка можна знайти в проекті, частина шляху до папки є випадковою (я думаю), особливо після /var/folders/xx..xxx/C.
karim

Вибачте - я не зрозумів. Так, шлях завжди буде змінюватися нижче / var / folders / *, але папка, якої там не було, була "SharedPrecompiledHeaders" - що мене здивувало. Але видалення батьківської папки, про яку я згадав, повинно працювати без проблем.
RedYeti

4

Мені довелося вручну видаляти ~/Library/Developer/Xcode/DerivedData/ Clean, який мені не працював.


0

використовуйте "command + shift + k" для очищення проекту, тоді все буде добре.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.