Projeto VisualStudio com vários arquivos de origem com o mesmo nome?

Eu tenho um projeto C ++ largish, com arquivos-fonte organizados em várias pastas (no sistema de arquivos).

em duas dessas pastas, eu tenho arquivos com o mesmo nome. por exemplo.

\MyProject\foo\Blurp.cpp
\MyProject\foo\File.cpp
\MyProject\bar\File.cpp
\MyProject\bar\Knoll.cpp

o projeto é multi-plataforma, e eu uso o autoconf no linux e no OSX, mas tenho que usar o MSVC no W32 (devido a algumas bibliotecas C ++ de terceiros que eu uso no W32 e as incompatibilidades da interface binária C ++ entre compiladores)

no lado do MSVC, o projeto é organizado em vários "Filtros" (aquelas Pastas virtuais) também (com nomes que correspondem aproximadamente aos Diretórios nos quais os arquivos moram), para que eu possa distingui-los.

agora o problema é que, quando eu construo o projeto, o MSVC coloca os arquivos de objetos em um único diretório plano, e acabo com:

\MyProject\Release\Blurp.obj
\MyProject\Release\File.obj
\MyProject\Release\Knoll.obj

como pode ser visto, há apenas umFile.obj, então um objeto binário está faltando. obviamente, o linker reclama, já que não pode encontrar classes / funções / ... definidas naquele arquivo de objeto ausente.

Existe uma maneira de informar ao MSVC para criar arquivos de objeto com um nome exclusivo, dependendo dos diretórios (ou filtros) em que esses arquivos residem?

Eu imagino algo como:

\MyProject\Release\foo\Blurp.obj
\MyProject\Release\foo\File.obj
\MyProject\Release\bar\File.obj
\MyProject\Release\bar\Knoll.obj

ou

\MyProject\Release\foo-Blurp.obj
...

como queiras. todos os outros sistemas de compilação que conheço (CMake, autotools) são capazes de lidar com vários arquivos de mesmo nome.

esta questão é semelhante a3729515, mas estou atualmente preso ao VS2008. (a solução sugerida para o VS2008 - para definir o diretório de objetos para cada arquivo em questão - é algo que realmente funciona teoricamente, mas que eu gostaria de evitar por razões práticas)

questionAnswers(2)

yourAnswerToTheQuestion