2017-12-05 9 views
0

コンパイラには/Fdオプションがあり、リンカには/PDBオプションがあります。 /PDBの既定値は$(OutDir)$(TargetName).pdbですが、コンパイラオプション/Fdの既定値は$(IntDir)vc$(PlatformToolsetVersion).pdbです。したがって、ビルド中に2つのファイルが生成されます。ドキュメントによれば、両方ともと呼ばれ、プログラムデータベースファイルとその両方がデバッグ情報に関連しています。両方のファイルの違いは何ですか?/PDBと/ Fdオプションの違い

答えて

1

VCxxx.pdbファイルは、主に静的ライブラリプロジェクトに必要です。ライブラリのデバッグ情報を格納します。リンカは、デバッガが使用する最終的なPDBファイルを生成するときにそれを必要とし、最終的なイメージにリンクする実際の関数の関連するデバッグ情報レコードを選択します。

他のいくつかのものも同様に、暗い、私はそれが依存情報を提供すると思います。 VS2015 Update 1以降、/ Debug:FASTLINKオプションを使用すると、より複雑になりました。現在は、実行時にデバッグ情報も提供します。デバッガがVCxxx.pdbファイルを掘り起こすのに多くの時間を費やして、大規模なプロジェクトでは非常に高価な完全なPDBを生成するための努力をしています。ほとんど常に勝ちます。私はまだ/ Fdを上書きする良い理由は見当たりませんでしたが、常にデフォルトのビルドオプションを優先しました。

関連する問題