Xcodeバージョン4.6.2(4H1003)コンパイラエラー


88

Xcodeバージョン4.6.2(4H10003)に更新し、以前に機能していたアプリケーションプロジェクトをシミュレータで実行しようとすると、次のエラーが発生してビルドが失敗しました。

コンパイラ((clang-425.0.28))とは異なるブランチ((clang-425.0.27))からビルドされたPCHファイル

何が問題で、どうすれば修正できますか?


私は製品を作成してみました->クリーンアップし、シミュレータから以前にビルドしたアプリを削除しました。どちらもうまくいきませんでした。
OscarTheGrouch 2013

2
「ビルドフォルダーのクリーンアップ」では、デバイスにビルドするときに問題が解決しませんでした(何度か試してみました)。「ビルドフォルダーをクリーンアップ」し、シミュレーターにビルドしてから、デバイスにビルドして解決しました。
DBD 2013

回答:


183

プロジェクトのクリーンアップを行います。オプションを押したままにして、ビルドフォルダー全体と中間ファイルをクリーンアップします。ここで説明するように、Xcodeを終了し、FinderでDerivedDataフォルダーの内容全体を手動で破棄する必要がある場合があります。キャッシュを空にしてすべてのターゲットをクリーンにする方法Xcode 4


はい、クリーンも私のために働きました。このエラーは、プリコンパイル済みヘッダーが別のバージョンでビルドされており、最新のコンパイラバージョンと互換性がないことを示しています。
zingle-dingle 2013

以前のXcodeアップグレードでこれが起こらなかった場合、あなたは幸運でした。それは私に起こりました。あなたはしばらくしてそれに慣れます...
マット

これは、オプションを押したまま「クリーンビルドフォルダー」を実行した後、私にとってはうまくいきました。ありがとう!
ルーク、

1
これは私に感謝しました...オプションを押し続けると別の種類のクリーンが実行されることを知りませんでした。
OscarTheGrouch 2013

これはXcode内でビルドする場合にのみ機能します。コマンドラインからビルドする場合は、下のロドリゴリマの投稿を参照してください。
ジェフ

21

プロジェクトのに移動し、Build Settingsという名前の設定を見つけて、Precompiled Headers Cache Pathそのフォルダーを削除します


このアクションだけが、前述の問題を解決しました。ありがとう!
オレンジ


9

XCodeの4.6.2リリースノート

既知の問題点

建物

Xcode 4.6.1以前でビルドされた製品をビルドすると、ビルドは次のようなエラーで失敗します。

コンパイラ((clang-425.0.28))とは異なるブランチ((clang-425.0.27))からビルドされたPCHファイル

この問題に対処するには、製品をビルドする前に、製品>クリーンを選択します。13663167

製品の実行>クリーンワーク


1
はい、それは以前のバージョンの問題でしたが、リリースノートで言及される価値があるのは今だけです。また、XcodeをIDEとして使用していない人にはソリューションを提供しません。@ sycxはそうします(プリコンパイル済みヘッダーキャッシュパスをクリアします)。
A-Live

9

私は上記のすべてを試してみましたが、Xcode UIからは問題なく動作しましたがコマンドラインからxcodebuildを実行したときも失敗しました。

これは、他のライブラリとそのプリコンパイルヘッダーへの依存関係が原因でした。コマンドラインから実行すると、xcodebuildは次のようにプリコンパイル済みヘッダーを格納/読み取りします。

/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結果のディレクトリを空にしました。魅力のように働いた。
ジェフ

私がこれに追加の賛成票を与えることができるなら、私はそうします。コマンドラインからビルドする場合、私からのクリーニングは確実に機能しないようです。私はそうなると思っていましたが、プリコンパイル済みヘッダーを探す場所を知ることは非常に役に立ちました。
John Bowers 2013年

4

特に、コマンドラインからビルドする場合、またはビルドスクリプトがある場合、xcodeターゲットのクリーニングでは不十分です。このフォルダを削除する必要があります。

プリコンパイル済みヘッダーの正確な場所はプロジェクトで確認できます。フォルダーパスの一部はランダム(おそらく)、/ var / folders / xx..xxx / Cの後にあります。

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

ターミナルを実行し、このフォルダーに移動して削除(コマンドを使用)、

#rm -fr SharedPrecompiledHeaders

ここに画像の説明を入力してください


正解です。しかし、その場所にはそのようなフォルダはありませんでした(ls -lAhFを使用したターミナルプロンプトでも)。ただし、Xcodeを閉じてからcom.apple.Xcode.501フォルダーを削除すると、問題なく動作しました。
RedYeti 2013年

プリコンパイル済みヘッダーの正確な場所はプロジェクトで確認できます。フォルダーパスの一部はランダム(おそらく)、/ var / folders / xx..xxx / Cの後にあります。
karim 2013年

すみません-はっきりしていませんでした。はい、パスは常に/ var / folders / *の下に変更されますが、存在しなかったフォルダーには「SharedPrecompiledHeaders」がありました。ただし、前述の親フォルダを削除しても問題なく機能するはずです。
RedYeti 2013年

4

~/Library/Developer/Xcode/DerivedData/ Clean を手動で削除する必要がありましたが、うまくいきませんでした。


0

「command + shift + k」を使用してプロジェクトをクリーンアップすれば、大丈夫です。


0

プロジェクトをクリーンアップして実行する

製品->クリーニングしてから実行します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.