Помилка компілятора версії 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.