2012-01-05 39 views
2

我在Windows XP系统上使用Visual Studio 2005(32位)。我有一个C++项目,我从命令行(在一个批处理文件中)使用devenv.exe来启动构建。下面是它如何被推出的一个例子:命令行中的Visual Studio会生成警告; IDE不是

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

在这个项目的代码,我们用了几注记语句来禁用我们不希望一些无关的警告看到:

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

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

通过devenv.exe驱动VS 2005有什么不同,导致在调试情况下忽略编译指示?为什么这些警告会出现在一个世界而不是另一个?

回答

1

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

检查

  • 构建配置(是否在IDE中建立Debug|Win32吗?)
  • ,特别是包括路径(它们是相同的;也许看环境是否含有其他设置)
  • 你正在做一个从IDE内完全重建?我不排除你通常在IDE中看不到警告,因为你通常做一个增量构建和相关的源不需要建立。检查做了充分的在IDE

如果你是绝望的线索重建当你是否得到相同的错误,你总是可以继续使用这两个变种,并比较他们预处理的结果。 “预处理源”选项隐藏在“预处理器”C++构建设置下的某处。

祝你好运

+0

感谢您的提示。(1)我很积极我在IDE中创建了与命令行相同的配置。 (2)包含路径在两种配置中都是相同的(事实上,我不同意这两种配置以查看更改内容)。 (3)在这两种情况下,我正在全面重建。 “保留预处理源”选项是一种帮助;两种变体都是一样的。现在,当我从命令行旋转构建时,我看不到警告。也许日志文件被追加到?也许它是间歇性的?无论哪种方式,这些提示都很有帮助。谢谢! – 2012-01-05 23:18:44

+0

我只是回答了我自己的问题。我们的日志文件正在追加到。我看到的警告来自旧版本。我真是个白痴! – 2012-01-05 23:24:04

+0

Hola!无论如何感谢您的反馈。 – sehe 2012-01-06 02:10:27

相关问题