Visual Studioでc ++ソリューションをビルドすると、xxxxx.pchファイルが見つからないというメッセージが表示されます。プリコンパイル済みヘッダーを元に戻すために欠けている設定はありますか?
ここに完全性のための正確なエラーがあります:
Error 1 fatal error C1083: Cannot open precompiled header file: 'Debug\xxxxx.pch': No such file or directory
Visual Studioでc ++ソリューションをビルドすると、xxxxx.pchファイルが見つからないというメッセージが表示されます。プリコンパイル済みヘッダーを元に戻すために欠けている設定はありますか?
ここに完全性のための正確なエラーがあります:
Error 1 fatal error C1083: Cannot open precompiled header file: 'Debug\xxxxx.pch': No such file or directory
回答:
注:IDEの新しいバージョンでは、関連ファイルのデフォルト名に「stdafx」ではなく「pch」を使用する場合があります。以下の手順でstdafxをpchに置き換える必要がある場合があります。謝罪します。それは私のせいではありません。
OKをクリック
ヘッダーファイルにstdafx.hがない場合は、そこに配置します。これを編集して、プリコンパイルするすべてのヘッダーを#includeします。
ラッキー13.指をクロスし、ビルドを押します。
stdafx.pch
ファイルを想定していますが、xxxxx.pch
質問からの質問はより複雑な問題(マルチPCHセットアップ)を示唆しています。
プリコンパイル済みヘッダー(pch)の使用は2段階のプロセスです。
ステップ1で、スタブファイルをコンパイルします(VS200xでは、通常はと呼ばれstdafx.cpp
ます。新しいバージョンではpch.cpp
。を使用します)。このスタブファイルには、プリコンパイルするヘッダーのみが間接的に含まれています。典型的には、一つの小さなヘッダ(通常stdafx.h
またはpch.hpp
など)のリスト標準ヘッダ<iostream>
と<string>
、これは、次いで、スタブファイルに含まれています。これをコンパイルすると、.pchファイルが作成されます。
手順2では、実際のソースコードに、手順1の最初のヘッダーと同じ小さなヘッダーが含まれています。コンパイラは、この特別なヘッダーを検出すると、対応する.pchファイルを代わりに読み取ります。つまり、それらの標準ヘッダーを毎回(再)コンパイルする必要はありません。
あなたの場合、ステップ1は失敗したようです。スタブファイルはまだ存在していますか?あなたの場合、それはおそらくでしょうxxxxx.cpp
。これ/Yc:xxxxx.pch
は、PCHプロセスのステップ1であることを示すコンパイラフラグであるため、でコンパイルされたファイルである必要があります。xxxxx.cpp
が存在し、そのようなスタブファイルである場合は、/Yc:
コンパイラオプションが不足している可能性があります。
Create (/Yc)
(復元して再度使用する)
これがサーバービルド(AppCenter)で発生していて、CocoaPodsを使用している場合は、Podfileがチェックインされていることを確認してください。
AppCenterは、Pofileが見つかり、ファイル上のPODSフォルダが見つからない場合にのみ、「pod install」コマンドを実行します。
フォルダーをチェックインしましたが、gitは.pchファイルを自動的に無視するため(これを確認するには.gitignoreを確認してください)、私の.pchがチェックインされませんでした。
私は.pchファイルにチェックを強制することで問題を分類しましたが、その場合Appcenterがポッドインストールコマンドを実行するため、PODSフォルダーの削除も機能するはずです。
うまくいけば、これは誰かを助けます。
すべてが正しいが、この間違いが存在する場合は、****。vcxprojファイルの次のセクションを確認する必要があります。
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader Condition=
私の場合、構成の名前が間違っていました:最初の単語のみ。
私はこのトピックが非常に古いことを知っていますが、最近VS2015でこれに対処しており、ビルドフォルダーを削除して再ビルドするのに役立ちました。これは、プログラムを閉じようとしたり、ビルド中にVSを停止/フリーズしたりしたために発生した可能性があります。