2010-03-22 47 views
7

我意识到Visual Studio有“/ P”选项来生成预处理文件,但这非常不方便。我正在寻找一个插件,允许您右键单击文件并选择“查看预处理” - 或者基本上预处理当前打开文件的任何类似解决方案(使用当前配置中的相应选项)并显示给我输出,没有额外的麻烦。这样的事情存在吗?“预处理当前文件”插件的Visual Studio? (C++)

+0

我创建了一个宏来做到这一点。 请参阅http://stackoverflow.com/questions/14257113/vs-addin-for-quickly-viewing-preprocessed-or-assembly-output。 – Trass3r 2013-04-10 11:18:48

回答

3

有没有真正优雅的方式使用外部工具菜单,但这里有一个可行的解决方案:

  1. 为您的项目创建一个新配置。称之为“调试预处理”。在此配置中,为编译器设置/ P开关。 (预处理,不编译)

  2. 转到外部工具设置菜单。创建一个名为“预处理项目”的新项目。设置选项:

    • 命令:C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe
    • 参数:$(ProjectDir)$(ProjectFileName) /Build "Debug-Preproc|Win32"

现在,您可以使用“预处理项目”选项,在菜单上运行针对所有源文件的预处理器在当前选定的项目中。它会为每个文件生成[filename].i,您可以在文本编辑器中打开它。

如果需要,您可以创建额外的步骤,在文本编辑器中打开文件,方法是向编辑器添加一个新的外部工具以打开$(ItemFileName).i

它不像简单的右键单击文件并选择“预处理”一样干净或方便,但我认为这是您写作扩展的最佳方式。

+0

不是我一直希望的解决方案,但我猜它已经尽可能地接近了,而不是让这些赏金浪费,我也可以把它分配给你。谢谢:) – Virgil 2010-03-31 06:22:44

+0

你知道,它发生在我身上 - 所有的编译器选项对于预处理器来说实际上是毫无意义的。在生成的输出中唯一重要的是预处理器页面本身的选项,其中大部分可能没有改变。所以如果你只是将外部工具设置为CL/P文件,那么你应该得到相同的输出,就像使用我建议的方法构建项目一样。 – 2010-03-31 07:10:03

+0

不是这样的,我在命令行中定义了很多定义,也包含include目录的路径......我认为这很常见。 – Virgil 2010-04-01 07:12:41

2

在UI中,您可以配置一个“外部工具”(从工具菜单中)。您可以制作一个工具,用当前文件和“/ P”选项调用编译器,并将编译器输出到屏幕上。对于外部工具,将其配置为输出到输出窗口。

+0

不是完美的解决方案,但可能有效;但是,如果我选择“编译文件”(并且只是添加/ P),如何配置此外部工具以使用Visual Studio将使用的命令行? – Virgil 2010-03-23 10:47:55

0

您可以在C++项目和外部构建工具中使用相同的方法编译proc。你右键单击proC文件,如果编译器指令设置在自定义生成设置(在MS Visual Studio中)它会显示你输出即C/C++文件

+0

对不起,我不太了解你的建议:( 我在说真正的C++文件;我无法为它定义一个“自定义构建” - 我不想改变我的项目构建方式, (只是寻找一种方法来更容易地检查预处理器的输出(在某些情况下,由于宏,编译器错误可能不是很微不足道,实际上预处理器输出实际上看起来很有帮助)。 只是先发制人:我同意“过于复杂的宏”的论点,但这不是重点......这不是我想要讨论的:) – Virgil 2010-03-23 10:45:30

1

视觉宏Expander: - 用于visual studio的插件,它显示扩展的宏,甚至格式化结果。

+0

似乎被打倒了。 – Trass3r 2013-04-10 11:15:44