Qt Creator上的预处理器输出

use*_*099 10 c qt gcc qmake c-preprocessor

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

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

mingw32-make.exe -e -w in \qt\qt-build-desktop
Run Code Online (Sandbox Code Playgroud)

请帮忙.

Fra*_*eld 17

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

QMAKE_CXXFLAGS += -save-temps
Run Code Online (Sandbox Code Playgroud)

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

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

QMAKE_CXXFLAGS += -P
Run Code Online (Sandbox Code Playgroud)