Qt Creator上的预处理器输出

我在Qt Creator中编译C代码,我需要查看预处理器输出。

我在make中添加了-E标志,但是我没有看到* .i文件:

mingw32-make.exe -e -w in \qt\qt-build-desktop 

请帮忙。

-E是一个gcc选项,而不是make选项,所以将它传递给make将不会做任何事情。 此外,使用-E适用于单个文件,但会因为没有生成正确的.o文件而中断构建(它包含预处理的源)。 什么工作正常,但将以下内容添加到.pro文件中:

 QMAKE_CXXFLAGS += -save-temps 

现在,如果您构建项目,源文件foo.cpp的预处理源将保留为foo.ii. (在OS X上使用make + gcc进行测试,我认为它也适用于mingw)。

编辑 :刚刚了解到MSVC的等效标志是

 QMAKE_CXXFLAGS += -P 

我可以使用.pro文件中的一个(或多个)以下选项让Qt Creator生成预处理文件:

 QMAKE_CFLAGS_DEBUG += -E QMAKE_CFLAGS_RELEASE += -E QMAKE_CXXFLAGS_DEBUG += -E QMAKE_CXXFLAGS_RELEASE += -E 

然而,丑陋的一点是,不是将输出放入.i文件中,而是将它们放入.o文件中(链接器不太喜欢……)。 由于这可能是故障排除的“一次性”情况,我没有研究如何清理它。

您可能需要在重建之前重新运行’qmake’,并且在尝试生成预处理输出之前,您几乎肯定需要运行“Clean Project”构建。