/FS (同期 PDB 書き込みの強制)

/Zi または /ZI を指定して作成したプログラム データベース (PDB) ファイルへの書き込みを MSPDBSRV.EXE によりシリアル化します。

構文

/FS

解説

既定では、/Zi または /ZI を指定すると、コンパイル時に型情報とシンボリック デバッグ情報を書き込むために PDB ファイルがロックされます。 これにより、型の数が多い場合、コンパイル時に型情報の生成にかかる時間が大幅に短くなることがあります。 ウイルス対策プログラムなどの別のプロセスによって PDB ファイルが一時的にロックされている場合、コンパイラによる書き込みは失敗し、重大なエラーが発生することがあります。 この問題は、cl.exe の複数のコピーが同じ PDB ファイルにアクセスするときにも発生することがあります。たとえば、ソリューションで個別のプロジェクトが同じ中間ディレクトリまたは出力ディレクトリを使用する場合や、並列ビルドが有効になっている場合です。 /FS コンパイラ オプションを指定すると、コンパイル時に PDB ファイルはロックされず、このファイルへの書き込みは MSPDBSRV.EXE によりシリアル化されます。 これにより、ビルド時間が大幅に長くなることがあります。cl.exe の複数のインスタンスが PDB ファイルに同時にアクセスするときに発生する可能性があるすべてのエラーを防止できないこともあります。 個別のプロジェクトによりそれぞれ別々の中間ディレクトリと出力ディレクトリに書き込まれるように、または、他のプロジェクトに依存するいずれかのプロジェクトでプロジェクトのビルドがシリアル化されるように、ソリューションを変更することをお勧めします。

/MP オプションを指定すると、既定で /FS が有効になります。

Visual Studio 開発環境でこのコンパイラ オプションを設定するには

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。

  2. [構成プロパティ]>[C/C++]>[コマンド ライン] プロパティ ページを選択します。

  3. /FS が含まれるように [追加のオプション] プロパティを変更し、[OK] を選択します。

このコンパイラ オプションをコードから設定するには

関連項目

MSVC コンパイラ オプション
MSVC コンパイラ コマンド ラインの構文