web-dev-qa-db-ja.com

VIsual Studio 2015による* .ipdb * .iobjファイルの生成を停止できますか?

Visual Studio Community 2015では、Visual C++プロジェクトはリリースフォルダーに* .ipdbファイルと* .iobjファイルを生成します。

現在、Visual Studio Community 2013では、これらのファイルがプロジェクトのReleaseフォルダーで生成されたのを見たことがないので、知りたいのですが-

それらの生成を停止することは可能ですか?

23
Neon

これらのファイルは、 インクリメンタルリンクタイムコード生成(LTCG) が有効な場合に生成されます。これは、Visual C++ 2015の新機能です。

Incremental LTCGを無効にすると、リンカーはこれらのファイルの生成を停止します。しかし、その後、インクリメンタルLTCGの利点を失います。

増分LTCGを無効にするには、プロジェクトプロパティを変更します。リンカー=>最適化で、「リンクタイムコード生成」を「高速リンクタイムコード生成を使用(/ LTCG:増分)」以外に変更します(これはリリースビルドのデフォルトです)。

30
James McNellis

コンソールにそのようなメッセージを出力すると、プロジェクトをより速く生成できると思います。

2 of 3 functions (66.7%) were compiled, the rest were copied from previous compilation.
1>    2 functions were new in current compilation
1>    0 functions had inline decision re-evaluated but remain unchanged
1>  Finished generating code

削除できるとは思いませんが、便利なツールです。これは、PDB生成がコンパイル時間の大部分を占めるためです。あなたはそれを「プリコンパイルされたソース」と考えることができます。

2
Drind51

増分リンクを無効にする必要はありません。 VS 2015以降、リリースビルドのリンカー/最適化の下のデフォルトは「高速リンク時コード生成」(/ LTCG:incremental)です。これを「リンクタイムコード生成」(/ LTCG)に変更するだけで、インクリメンタルリンクが作成され、VSは* .iobjおよび* ipdbファイルの生成を停止します。

1