【问题标题】:How to force absolute paths for build errors output in Visual Studio如何在 Visual Studio 中强制生成错误输出的绝对路径
【发布时间】: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


【解决方案1】:

我找到了解决办法。

在项目属性->配置属性->c/c++->高级中,有一个“使用完整路径”选项似乎使vcbuild将/FC标志传递给cl.exe。这会在输出中生成完整路径。

这样就解决了我的问题...但是在我已经看到完整路径的情况下没有设置该选项,所以这里还有其他东西在起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-02
    • 2014-05-07
    • 2011-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-06
    • 1970-01-01
    相关资源
    最近更新 更多