現在、2 つの異なるネイティブ Visual-C++ プロジェクト (コンパイラ設定がまったく同じ) が中間ファイル (obj、pch、...) を共有できるかどうかを調べようとしています。
例が役立つはずです:
これは通常のセットアップです。
PROJECTS \ P1 \ p1.vcproj; p1.cpp; ...
\ Release_Intermediate_Dir \ p1.obj
\ tool1.obj
\ P2 \ p2.vcproj; p2.cpp; ...
\ Release_Intermediate_Dir \ p2.obj
\ tool1.obj
\ COMMON \ tool1.cpp; ...
このセットアップはどうですか:
PROJECTS \ P1 \ p1.vcproj (uses: p1.cpp; p1_main.cpp)
\ p1_test.vcproj (uses: p1.cpp; p1_test.cpp)
\ Release_Intermediate_Dir \ p1.obj (used by both projects p1 and test)
\ tool1.obj
\ p1_main.obj (only p1.vcproj)
\ p1_test.obj (only p1_test.vcproj
\ COMMON \ tool1.cpp; ...
2 つの C++ プロジェクトに同じ中間フォルダーを使用して、obj
ファイルを直接共有することはできますか?
それとも、追加の静的 lib プロジェクトが常に必要ですか? (私が理解している限り、静的ライブラリは単なるobj
ファイルのコンテナーです。)
なぜ私はこれをしたいのですか?このブログ記事を見てください:ネイティブ C++ 用の Visual Studio でのユニット テストの記述。
2 つの異なる実行可能ファイル (必要に応じてメイン関数) を持つという唯一の目的で、静的ライブラリを使用します。(マネージド/CLIのことは忘れてください。)これは、同じコンパイル設定で同じコードを共有するが異なるメイン/スタートアップを使用する2つのプロジェクトだけが本当に必要な場合に、ソリューションに3つのプロジェクトを持つことを意味します(3つのプロジェクトを維持する必要があります)。リギング。