我希望能够查看预处理器输出,以确保我的预处理器指令正确运行。 Dev-C ++在Tools>中有一个选项。编译器选项...>一般在调用编译器时添加命令,并且我添加了命令-E C:\ Personal \ preprocessed.cpp。我收到编译错误,说该文件不存在,但编译器是否应该只创建该文件?我创建了该文件,现在我收到此错误:cannot specify -o with -c, -S or -E with multiple files
。
为什么我使用Dev-C ++而不是Visual Studio?由于我还在学习,我希望能够只测试几行代码,而无需创建an entire new project。
是的,我已经看过this question并且没有给出足够的答案。请不要将此标记为副本。
提前感谢您的帮助!
答案 0 :(得分:1)
我已添加命令-E C:\ Personal \ preprocessed.cpp。我收到编译错误说文件 不存在,但编译器不应该在这种情况下创建文件吗?
不,因为-E
option
不带参数,文件名或其他。它只是指示
编译器只做预处理。预处理的代码被写入标准输出。因此:
因此:
g++ -E C:\Personal\preprocessed.cpp foo.cpp
告诉编译器您希望使用输入文件对g++ -E
和C:\Personal\preprocessed.cpp
运行foo.cpp
,
正如你所发现的那样是不允许的。
使用您选择的IDE,您想要做的简单事情是非常困难的。假设
您要预处理的源文件是C:\Personal\foo.cpp
,而g++
位于您的PATH
中,
只需在C:\Personal
中打开命令窗口并运行:
g++ -E foo.cpp > foo.ii
我建议输出文件foo.ii
- 尽管你可以随意调用它 - 因为g++
将扩展名.ii
识别为表示已经过预处理的C ++源代码。你可以运行:
g++ -Wall -o prog foo.ii
和foo.ii
将被编译并链接为程序prog
,而无需再次进行预处理。