我有一个(C ++)项目,我最初在Linux下使用make来构建它。我想让它在Windows中运行,并使用Visual Studio 2005来构建它。我遇到的问题是Visual Studio将所有对象放在同一个输出目录中。这对我不起作用,因为我在不同的子目录中有相同名称的源文件。这意味着最后一个对象(使用通用名称)会覆盖所有以前的对象,因此我会收到“缺失”代码的链接错误。
在项目级别设置输出目录(甚至使用像$(InputDir)这样的Visual Studio变量)不起作用,因为Visual Studio会立即将所有源文件传递给cl.exe(即$(InputDir)是评估一次而不是每个输入文件)。看来这个问题可以通过手动设置每个文件的输出目录来解决(至少对于受影响的文件),但这不是最佳的并且容易出错。
有没有更好的方法来解决这个问题?我甚至欣赏它,即使有人能够建议一种方法让Visual Studio一次一个地编译文件,以便在项目级别设置输出目录会产生预期的效果。
答案 0 :(得分:1)
您可以考虑为每个目录使用不同的项目。否则,在某个项目中使用完全相同的文件名可能看起来有点奇怪。 (项目结构中的层次结构的排序;无论如何我以前从未见过的。)