2

いくつかのプロジェクトを含むソリューションがあります。これらのプロジェクトのいくつかは、ソースファイルを共有します。ソースファイルを共有するプロジェクトが一緒になるようにプロジェクトツリーを設定しました。私の問題は、クリーンアップを実行して共有ソースファイルをビルドすると、それらを使用する最初のプロジェクトだけでなく、すべてのプロジェクトに対して再コンパイルされることです。その結果、最初のビルドに必要以上に時間がかかり、すべての依存関係を満足させるために複数回ビルドする必要があります(再リンクが必要です)。プロジェクトは、一連のmakeを使用するgccプロジェクトからのポートです。ビルドを実行するファイル。makeファイルはコンパイルを繰り返しません。Visual Studioで期待どおりに依存関係が満たされるように、上記の状況を処理する方法はありますか?ソースファイルと.idbおよび.pdbファイル間の依存関係が原因で問題が発生しますか?

更新:私が本当に必要としているのは、異なるDLLおよびLIB名を持つ同じobjファイルに対して再リンクを実行するようにVSに指示する方法です。再リンクプロジェクトに.objファイルを含めることでこれを機能させることができますが、デバッグ/リリースバージョンを作成する方法を理解できませんでした。プロジェクトファイルのセクションでは、$(IntDir)が解析されていないようです。それで...

プロジェクト1で

file1.c file2.c file3.c dll1.dll、dll1.libへのリンク

次に、プロジェクト2では、project1のオブジェクトファイルが今回だけdll2.dll、dll2.libに再度リンクされます。

project3同じこと。等

私はこれをMSフォーラムにも投稿しましたが、まだ回答を受け取っていません。

4

1 に答える 1

2

これを行うためにコードを再編成できる場合は、共有 .obj ファイルをライブラリ プロジェクトにビルドしてから、依存プロジェクトからそのライブラリにリンクできます。

それが問題を解決するために私が考えることができる唯一の「クリーンな」方法です.私が考えることができる他の方法は、ビジュアルスタジオの「戦い」または「だまし」を伴う可能性が高く、通常は悪い考えです.

于 2010-04-08T20:56:31.517 に答える