是否可以查看“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++ 文件扩展名。
【讨论】:
Sudo
和 Make
分别拼写为 sudo
和 make
。 Bcc
是 gcc
的错字吗?为什么需要重新启动(我假设您的意思是重新启动系统)?你为什么假设OP的系统使用sudo
和apt-get
? libboost
、subversion
和 git
与 OP 的问题有何关联?以上是关于是否可以查看“C++”预处理器的结果的主要内容,如果未能解决你的问题,请参考以下文章