是否可以查看“C++”预处理器的结果

Posted

技术标签:

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

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

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

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

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

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

有什么提示吗?

【问题讨论】:

是的,g++ -E...手册通常会记录此类信息。 【参考方案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 的问题有何关联?

以上是关于是否可以查看“C++”预处理器的结果的主要内容,如果未能解决你的问题,请参考以下文章

处理 Autodesk Forge 查看器的错误

您可能需要额外的加载器来处理这些加载器的结果

“您可能需要一个额外的加载器来处理这些加载器的结果。”

如何将图像后处理着色器的结果添加到场景中

Webpack/React.js:你可能需要一个额外的加载器来处理这些加载器的结果

C#如何获取已定义预处理器的列表?