私はLinuxで元々開発した(C++)プロジェクトをmakeを使ってビルドしました。また、Windowsで実行して、Visual Studio 2005を使用してビルドしています。私が実行している問題は、Visual Studioがすべてのオブジェクトを同じ出力ディレクトリに配置することです。異なるサブディレクトリに同じ名前のソースファイルがあるため、これは私のためには機能しません。これは、最後のオブジェクト(共通名を持つ)が以前のオブジェクトをすべて上書きし、 "欠落した"コードのリンクエラーが発生することを意味します。Visual Studioでソースファイルのサブディレクトリ(共通ファイル名)をサポートするにはどうしたらいいですか?
Visual Studioがすべてのソースファイルを一度にcl.exeに渡すので、プロジェクトレベルで出力ディレクトリを設定すると($(InputDir)などのVisual Studio変数を使用しても)出力ディレクトリは設定されません(つまり$(InputDir)各入力ファイルではなく1回評価されます)。この問題は、各ファイルの出力ディレクトリを手動で設定することで解決できますが(影響を受けるファイルの場合は最低限です)、これは最適でエラーが発生しにくいものです。
この問題を解決するには、より良い方法がありますか? Visual Studioにファイルを1つずつコンパイルして、プロジェクトレベルで出力ディレクトリを設定することが望ましい効果を持つようにする方法を提案することができても、私はそれを感謝するでしょう。