在Visual Studio 2022中同时获取预处理器输出与编译报错可行吗?
在Visual Studio 2022中同时获取预处理输出与编译报错的方法
完全可以实现,给你两种实用的方案:
方案一:用/E或/EP选项替代/P,重定向输出到文件
放弃项目属性里的“Preprocess to a file”设置,转而在项目属性 -> C/C++ -> 命令行 -> 附加选项中添加指令:
用/E > "$(IntDir)$(InputName).i",这样预处理后的代码会被输出到项目中间目录下的.i文件里,同时编译器会正常完成编译流程,所有警告、错误都会正常显示。
如果想得到更干净的预处理输出(不带#line行号指令),可以把/E换成/EP,指令变成/EP > "$(IntDir)$(InputName).i"。方案二:分两次编译(适合需要严格保留/P生成格式的场景)
如果你一定要用/P选项生成预处理文件,可以先单独执行一次预处理生成.i文件,之后关闭“Preprocess to a file”选项,再正常编译一次查看警告和错误。这种方法虽然麻烦,但能完全保留/P生成的预处理文件格式。
需要注意的是,/P选项的设计就是预处理后停止编译,所以没法直接通过启用它来同时获得编译反馈,上面的方案一最省心高效。
内容的提问来源于stack exchange,提问作者Thomas W.
相关产品推荐
相关产品推荐

