-2

~20 のプロジェクトで構成される VS2008 ソリューションを VS2010 にアップグレードしようとしていますが、一部のプロジェクトのビルドに問題があります。異なるバージョンの VS (2010、2012、2013。vc90 コンパイラ バージョンでも) / IncrediBuild (4.61、5.0、6.1) / Windows (7、8) を試しましたが、何も役に立ちません。プロジェクトと Incredi のすべての可能なオプションも変更されました。これらのプロジェクトには、カスタム ビルドのルールと手順が設定されていません。問題を解決するために何ができるか誰か教えてください。

まだ画像を読み込めなかったので、グラフのスクリーンショットを作成するためのリンクです。

Upd : IncrediBuild を使用せずに VS2013 でソリューションをコンパイルしようとしましたが、/MP オプションを使用して、まったく同じ結果になりました - プロジェクトの一部のファイルは順次同じ順序でコンパイルされたため、Incredi は無害であり、問​​題は私たちのプロジェクトとVSがそれをどのように扱うか。

4

2 に答える 2

1

IncrediBuild の最新の公開バージョンは、まさにあなたが求めていた機能を導入しました - 真にアウト オブ オーダー \ 最適化された並列化です。この新機能により、IncrediBuild は、Visual Studio が実行方法を認識していないシナリオでも、Visual Studio タスクを並行して実行できます。つまり、IncrediBuild では、前のタスクにまったく依存していないすべてのタスクが並行して実行されます。

したがって、上記のシナリオでは、固定出力オブジェクト ファイル名を入力すると、Visual Studio (および MSBuild) はこれらのファイルを順次コンパイルしますが、IncrediBuild はそれらを並行してコンパイルします。

それに加えて、プロジェクト B がプロジェクト A に依存しているシナリオでは、Visual Studio は A のリンクが完了した後にのみプロジェクト B からのソースをコンパイルします (ただし、ほとんどの場合、プロジェクト B のコンパイルはプロジェクト A のコンパイルには依存しませんが、これらのプロジェクトのリンク ステップは相互に依存します)、IncrediBuild はプロジェクト A とプロジェクト B の両方を並行してコンパイルし、その後に A のリンクと B のリンクをコンパイルできます。

これがトピックに光を当てることを願っています。

免責事項: ライターは IncrediBuild の CTO です

于 2015-06-21T15:07:26.953 に答える