【发布时间】:2012-08-06 03:04:06
【问题描述】:
在大多数 Visual Studio(2008,但我怀疑它是否重要)项目中构建时,如果出现错误,它会列出错误文件的绝对路径。像这样(忽略具体的错误——我是故意添加的):
1>dope_external.cpp
1>c:\users\me\dope_external.cpp(4) : error C2144: syntax error : 'void' should be preceded by ';'
1>c:\users\me\dope_external.cpp(4) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>Generating Code...
但是,我目前正在使用的解决方案/项目列出了相对路径名:
1>FileBasedEffect.cpp
1>..\..\..\..\..\..\..\..\tools\blah\code\src\important_file.cpp(10) : error C2653: 'FusionEffectKeys' : is not a class or namespace name
1>..\..\..\..\..\..\..\..\tools\blah\code\src\important_file.cpp(10) : error C2143: syntax error : missing ';' before 'const'
1>..\..\..\..\..\..\..\..\tools\blah\code\src\important_file.cpp(10) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
这发生在 Visual Studio 中,如果我从命令行或使用 vcbuild 在另一个环境中构建,也会发生这种情况。我想使用不同的环境来构建,至少作为一个实验。但是相对路径让我有点害怕。
我没有发现项目属性中有任何明显的差异,例如“UseRelativePathsInBuildErrors”,但我不太了解构建系统。有任何想法吗?谢谢。
【问题讨论】:
-
我想知道它是否只是路径的长度。您可以尝试将您创建的 dope_external 项目移动到文件系统深处的某个目录中,然后查看路径是否开始被截断?
-
我不知道这是否能解决问题,因为我无法重新创建您的错误,但在工具-> 选项-> 构建并运行:您将看到@987654323 的设置@。尝试将其设置为详细甚至诊断。请告诉我。
-
@jwismar:好主意,但即使目录级别非常深,我仍然可以看到这一点。
-
@RobertoWilko:这样做并没有“解决”问题,但我查看了命令行,在它显示相对路径的情况下,相对路径在命令上传递给 cl -在显示绝对路径的情况下使用行和绝对路径。
标签: c++ visual-studio-2008 build vcbuild