我正在对由大量#ifs 和#ifdefs 配置的一些旧代码进行逆向工程。我目前正在通过在编辑器中进行替换来查看各种配置。这既乏味又(我怀疑)容易出错。
是否有一些 gcc 预处理器选项可以预处理 #if[def] 而保留其他预处理器指令(例如 #define)不变?这仅用于逆向工程目的;我不需要编译或以其他方式使用预处理代码。
最佳答案
我不知道 gcc 的预处理器中有任何这样的功能。根据您尝试做的事情,这甚至可能是不可能的。如果 #ifdef
指令引用了先前由 #define
指令定义(或未定义)的宏,而您忽略了 #define
指令,则这显然行不通。
但是unifdef command 很可能就是您要查找的内容。我刚刚使用 sudo apt-get install unifdef
在我的 Ubuntu 系统上安装了它;应该有类似的方法在其他系统上安装它。
关于c++ - gcc 预处理器 : can I resolve #if[def]s only, 保留其他指令不变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10956393/