【发布时间】:2012-01-05 21:52:33
【问题描述】:
我在 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 配置中构建时,这些警告不会显示在构建输出中。当从命令行构建同一个项目时,警告 do 会显示在我们的日志文件中(我们使用 /out 命令行参数指定)。在发行版中构建时,在任何一种情况下都不会显示警告。
通过 devenv.exe 驱动 VS 2005 有什么不同导致在调试情况下忽略编译指示?为什么这些警告会出现在一个世界而不是另一个世界?
【问题讨论】:
标签: c++ build batch-file visual-studio-2005