【问题标题】:Is it possible to view the result of the "C++" preprocessor是否可以查看“C++”预处理器的结果
【发布时间】:2013-09-17 15:34:53
【问题描述】:

我正在尝试在 python (PLY) 中编写一个小型 C++ 解析器,仅涵盖整个 C++ 功能的一小部分(无模板、无指针、无操作重载)。我目前有很多适用于代码 sn-ps 的东西,但不适用于整个 C++ 项目。 所以我最大的问题是处理 C++ 预处理器(包括、定义、替换、ifdef、...)。

有没有人知道一个程序可以在预处理后为您提供 cpp 文件的结果?

可以从 python 调用的东西是完美的。

我知道大多数编译器都可以,但我不想在我的小解析器中包含另一个编译器。

我尝试了 boost::wave,但没有成功。因为 : Using boost wave

有什么提示吗?

【问题讨论】:

  • 是的,g++ -E...手册通常会记录此类信息。

标签: c++ c-preprocessor


【解决方案1】:

GNU C preprocessor 可作为单独的程序使用。它适用于 C 和 C++(以及 Objective-C)。

在我的系统上,它被安装为/usr/bin/cpp

(它在 GNU GPL 下获得许可;如果您要将其合并到您自己的项目中,请注意。)

【讨论】:

    【解决方案2】:

    您需要通过添加以下命令来添加更多的库文件。

    Sudo apt-get install libboost -alt-dev emake subversion
    Sudo apt-get update
    Sudo apt-get upgrade
    Sudo apt-get install build-essential
    Bcc -v
    Make -v
    Sudo apt-get install git
    

    然后你需要重新启动。 这适用于.cpp .C .cpp c++ 文件扩展名。

    【讨论】:

    • SudoMake 分别拼写为 sudomakeBccgcc 的错字吗?为什么需要重新启动(我假设您的意思是重新启动系统)?你为什么假设OP的系统使用sudoapt-getlibboostsubversiongit 与 OP 的问题有何关联?
    猜你喜欢
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    相关资源
    最近更新 更多