2011-01-19 16 views
2

私はMS Visual Studio 2005で大規模なC++アプリケーションを構築する際にリンク時間を短縮しようとしています。現在のところ、リンク時間は7〜100秒で、通常は7に近づいています(運が悪いと思われます)。MS Visual Studioの部分リンク?

私のアプリケーションは約20の静的ライブラリで構成されていますが、そのうちの1つは大きく、めったに変更されず、他のどのライブラリでも使用されていない大きな第三者ライブラリに依存します。私は古典的なケースだと思う。部分リンクはビルド時間を改善する。 「部分リンク」とは、Linux上でld -rが何をしているかを意味します。

MS Visual Studioでは「部分リンク」が可能ですか?私はドキュメントでそれを見つけられませんでしたが、多分彼らはそれを別の名前と呼ぶかもしれませんし、隠した機能かもしれません。

部分リンクの私の推測は意味がありますか?それは本当に私を助けるチャンスですか?

答えて

1

/INCREMENTALスイッチでlinking incrementallyを入力してください。

あなたができることのもう1つは、インダイレクションのレベルを上げることです。静的なライブラリをDLLにラップし、アプリケーションがDLLを使用しているものを公開します。そのDLLはかなり頻繁に構築することはできませんし、DLLとのリンクははるかに安価かもしれません。

+0

私はすでにインクリメンタルリンクを使用しています。これが私が求めているものと同等であれば、私は不運です。 – anatolyg

0

私の場合の解決策はモジュール定義ファイルfoo.def)を使用していました。 マイクロソフトのfile format specificationは、DLLファイル にのみ使用する必要があることを意味しますが、静的ライブラリでもうまく動作します したがって、ライブラリをDLLに変更する必要がありました。

これにより、最小限のリンク時間が7秒から2秒に短縮されました(おそらく平均リンク時間にも役立ちました)。

関連する問題