命令行中的Visual Studio生成警告; IDE没有

时间:2012-01-05 21:52:33

标签: c++ build batch-file visual-studio-2005

我在Windows XP系统上使用Visual Studio 2005(32位)。我有一个C ++项目,我从命令行(在批处理文件中)构建,使用 devenv.exe 来启动构建。以下是它如何启动的示例:

{path_to_devenv.exe} my_solution.sln /rebuild "Debug|Win32" /out my_logfile.txt

在这个项目的代码中,我们使用一些pragma语句来禁用一些我们不想看到的无关警告:

#pragma warning ( disable : 4521 4522 )
// Some code here
#pragma warning ( default : 4521 4522 )

当项目在IDE中的 debug 配置中构建时,这些警告不会显示在构建输出中。当从命令行构建同一项目时,警告执行会显示在我们的日志文件中(我们使用 / out 命令行参数指定)。在发布时构建时,警告不会出现在任何一种情况下。

通过devenv.exe驱动VS 2005会导致在调试案例中忽略编译指示吗?为什么这些警告应该出现在一个世界而不是另一个世界?

1 个答案:

答案 0 :(得分:1)

坦率地说,我能看到这种情况发生的唯一原因就是没有看到这种情况。

检查

  • 构建配置(您是否也在IDE中构建Debug|Win32?)
  • ,尤其是包含路径(它们是否相同;或许可以查看环境是否包含其他设置)
  • 您是否在IDE中执行 完全重建 ?我不排除您通常在IDE中看不到警告,因为通常执行增量构建并且相关的源不需要是建成。检查在IDE中执行完整重建时是否出现相同的错误

如果您急需线索,可以始终使用两种变体保留预处理结果并进行比较。 'keep preprocessed source'选项隐藏在'Preprocessor'C ++构建设置下的某处。

祝你好运

相关问题