我在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会导致在调试案例中忽略编译指示吗?为什么这些警告应该出现在一个世界而不是另一个世界?
答案 0 :(得分:1)
检查
Debug|Win32
?)如果您急需线索,可以始终使用两种变体保留预处理结果并进行比较。 'keep preprocessed source'选项隐藏在'Preprocessor'C ++构建设置下的某处。
祝你好运