Qt Creator中的预处理器输出

11

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

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

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

请帮忙。

2个回答

19

-E是gcc选项,而不是make选项,因此将其传递给make不会产生任何作用。此外,对于单个文件,使用-E可以正常工作,但会中断您的构建,因为没有生成正确的.o文件(它包含预处理的源代码)。 然而,下面将其添加到.pro文件中可以正常工作:

QMAKE_CXXFLAGS += -save-temps

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

编辑:刚得知MSVC的等效标志是

QMAKE_CXXFLAGS += -P

1

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

QMAKE_CFLAGS_DEBUG += -E

QMAKE_CFLAGS_RELEASE += -E

QMAKE_CXXFLAGS_DEBUG += -E

QMAKE_CXXFLAGS_RELEASE += -E

然而,一个不太美观的地方是,它没有将输出放入.i文件中,而是放入了.o文件中(链接器并不喜欢这样...)。由于这可能是一种“一次性”的故障排除情况,我没有研究如何清理它。

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


谢谢您的回复。由于副作用,我无法使用这个,所以我使用了上面发布的解决方案。 - user549099

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接