【问题标题】:How do I save preprocessor output using the Dev-C++ IDE?如何使用 Dev-C++ IDE 保存预处理器输出?
【发布时间】:2016-12-26 01:38:21
【问题描述】:

我希望能够查看预处理器输出,以确保我的预处理器指令正确运行。 Dev-C++ 在 Tools > Compiler Options... > General 中有一个选项可以在调用编译器时添加命令,我已经添加了命令 -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,但没有给出足够的答案。请不要将此标记为重复。

提前感谢您的帮助!

【问题讨论】:

    标签: ide c-preprocessor dev-c++


    【解决方案1】:

    我添加了命令 -E C:\Personal\preprocessed.cpp。我得到一个编译器错误,说文件 不存在,但在这种情况下编译器不应该只创建文件吗?

    不,因为-E option 不接受任何参数、文件名或其他。它只是指示 编译器除了预处理什么都不做。预处理后的代码被写入标准输出。因此:

    因此:

    g++ -E C:\Personal\preprocessed.cpp foo.cpp
    

    告诉编译器你想用一对输入文件C:\Personal\preprocessed.cppfoo.cpp运行g++ -E, 正如您所发现的那样,这是不允许的。

    对于您选择的 IDE,您想要做的简单事情是非常困难的。假设 您要预处理的源文件是C:\Personal\foo.cppg++ 在您的PATH 中, 只需在C:\Personal 中打开一个命令窗口并运行:

    g++ -E foo.cpp > foo.ii
    

    我建议输出文件foo.ii - 尽管你可以随意调用它 - 因为g++ 将扩展名.ii 识别为表示已经预处理的C++ 源代码。你可以运行:

    g++ -Wall -o prog foo.ii
    

    foo.ii 将被编译并链接为程序prog 而无需再次进行预处理。

    【讨论】:

    • 这很有帮助,谢谢。当我从 -E 中删除参数时,Test.cpp 的预处理器输出直接进入 Test.exe,然后我可以将其更改为 Test.txt 以读取它。这似乎与您提供的命令行解决方案没有任何不同,无论如何这对我不起作用。我得到“g++”无法识别等。我对如何使用命令行不太了解,我尽量避免使用它,因为每次都必须导航到正确的文件夹似乎很痛苦。
    • 我会看看 Visual Studio 是否提供了更好的解决方案。我希望你不介意我暂时不回答这个问题,以便让其他人有机会深入了解如何让 Dev-C++ 做到这一点。
    猜你喜欢
    • 2011-02-18
    • 1970-01-01
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    相关资源
    最近更新 更多