2009-09-03 27 views
1

我有一个(C++)项目,我最初在Linux下使用make开发来开发它。我也想让它在Windows中运行,并使用Visual Studio 2005来构建它。我遇到的问题是,Visual Studio将所有对象放在同一个输出目录中。这对我不起作用,因为我在不同的子目录中具有相同名称的源文件。这意味着最后一个对象(使用通用名称)将覆盖所有以前的对象,因此我会为“缺少”代码获取链接错误。如何在Visual Studio中支持源文件子目录(使用常用文件名)?

在项目级别设置输出目录(即使使用Visual Studio变量,如$(InputDir))也不起作用,因为Visual Studio一次将所有源文件传递给cl.exe(即$(InputDir)被评估一次而不是每个输入文件)。看起来,这个问题可以通过手动设置每个文件的输出目录来解决(至少对于受影响的文件来说),但这不是最优的,并且容易出错。

有没有更好的方法来解决这个问题?即使有人能够建议一种方法让Visual Studio一次编译文件,以便在项目级别设置输出目录将会产生所需的效果,我甚至会感激它。

回答

1

您可能会考虑为每个目录左右使用不同的项目。否则,在某个项目中使用完全相同的文件名可能有点奇怪。 (项目结构中的层次结构的排序;我以前从未见过的东西。)