我意识到Visual Studio有“/ P”选项来生成预处理文件,但这非常不方便。我正在寻找一个插件,允许您右键单击文件并选择“查看预处理” - 或者基本上预处理当前打开文件的任何类似解决方案(使用当前配置中的相应选项)并显示给我输出,没有额外的麻烦。这样的事情存在吗?“预处理当前文件”插件的Visual Studio? (C++)
回答
有没有真正优雅的方式使用外部工具菜单,但这里有一个可行的解决方案:
为您的项目创建一个新配置。称之为“调试预处理”。在此配置中,为编译器设置/ P开关。 (预处理,不编译)
转到外部工具设置菜单。创建一个名为“预处理项目”的新项目。设置选项:
- 命令:
C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe
- 参数:
$(ProjectDir)$(ProjectFileName) /Build "Debug-Preproc|Win32"
- 命令:
现在,您可以使用“预处理项目”选项,在菜单上运行针对所有源文件的预处理器在当前选定的项目中。它会为每个文件生成[filename].i
,您可以在文本编辑器中打开它。
如果需要,您可以创建额外的步骤,在文本编辑器中打开文件,方法是向编辑器添加一个新的外部工具以打开$(ItemFileName).i
。
它不像简单的右键单击文件并选择“预处理”一样干净或方便,但我认为这是您写作扩展的最佳方式。
不是我一直希望的解决方案,但我猜它已经尽可能地接近了,而不是让这些赏金浪费,我也可以把它分配给你。谢谢:) – Virgil 2010-03-31 06:22:44
你知道,它发生在我身上 - 所有的编译器选项对于预处理器来说实际上是毫无意义的。在生成的输出中唯一重要的是预处理器页面本身的选项,其中大部分可能没有改变。所以如果你只是将外部工具设置为CL/P文件,那么你应该得到相同的输出,就像使用我建议的方法构建项目一样。 – 2010-03-31 07:10:03
不是这样的,我在命令行中定义了很多定义,也包含include目录的路径......我认为这很常见。 – Virgil 2010-04-01 07:12:41
在UI中,您可以配置一个“外部工具”(从工具菜单中)。您可以制作一个工具,用当前文件和“/ P”选项调用编译器,并将编译器输出到屏幕上。对于外部工具,将其配置为输出到输出窗口。
不是完美的解决方案,但可能有效;但是,如果我选择“编译文件”(并且只是添加/ P),如何配置此外部工具以使用Visual Studio将使用的命令行? – Virgil 2010-03-23 10:47:55
您可以在C++项目和外部构建工具中使用相同的方法编译proc。你右键单击proC文件,如果编译器指令设置在自定义生成设置(在MS Visual Studio中)它会显示你输出即C/C++文件
对不起,我不太了解你的建议:( 我在说真正的C++文件;我无法为它定义一个“自定义构建” - 我不想改变我的项目构建方式, (只是寻找一种方法来更容易地检查预处理器的输出(在某些情况下,由于宏,编译器错误可能不是很微不足道,实际上预处理器输出实际上看起来很有帮助)。 只是先发制人:我同意“过于复杂的宏”的论点,但这不是重点......这不是我想要讨论的:) – Virgil 2010-03-23 10:45:30
- 1. Visual Studio 2008中的批处理文件
- 2. 如何在Visual Studio中预处理后看到C/C++源文件?
- 3. 事件处理 - Visual Studio
- 4. 处理Visual Studio 2010事件
- 5. 为什么Visual Studio将我的.cfg文件当作xml处理?
- 6. 的Visual Studio预生成事件:批处理文件退出代码为-1
- 7. C/C++的ReSharper/StyleCop-like Visual Studio插件
- 8. Visual Studio 2008的预处理器wierdness
- 9. c#插件事件处理
- 10. 是否有Visual Studio 2010文件预览选项卡插件?
- 11. Visual Studio:插件配置文件
- 12. 如何在Visual Studio中自动插入预处理器和注释块到新的C++头文件中?
- 13. 在Visual Studio中处理可执行文件C#
- 14. 在Visual Studio插件中显示当前的方法/块/区域
- 15. 在Visual Studio插件中获取当前的TFS连接
- 16. SonarQube的Visual Studio 2013 C++插件
- 17. visual studio C++头文件
- 18. Visual Studio插件库?
- 19. 在C#中使用Visual Studio 2010中的预处理器指令
- 20. Visual Studio 2010-C++项目中的预处理器
- 21. 在Xcode中生成预处理文件
- 22. 查找::文件预处理
- 23. 的Visual Studio 2008 IDE C++:当前行
- 24. Visual Studio设计时间事件处理
- 25. Visual Studio SDK - 处理文件保存事件
- 26. Visual Studio宏的当前行
- 27. 使用c预处理器处理嵌套头文件
- 28. 的Visual Studio插件与谷歌文档
- 29. 的Visual Studio插件文本搜索
- 30. Visual Studio的NCB文件位于何处?
我创建了一个宏来做到这一点。 请参阅http://stackoverflow.com/questions/14257113/vs-addin-for-quickly-viewing-preprocessed-or-assembly-output。 – Trass3r 2013-04-10 11:18:48