【发布时间】:2017-05-08 01:46:32
【问题描述】:
我有一个我正在处理的程序的源代码树,它是用混合 C/C++ 代码编写的。出于调试目的,我希望能够在整个树上(递归地)运行像 unifdef 这样的命令行工具,以从所有源文件中删除一组特定的 #ifdef/#endif 宏。
我想知道是否有任何特定的方法可以有效地做到这一点。如有任何帮助,将不胜感激,谢谢。
【问题讨论】:
-
使用
find命令和-exec选项对源树中的所有文件执行命令。 -
没有“混合 C/C++ 代码”。单个源文件只能是 C 或 C++。 c++ 编译器无法编译 C 代码。
-
不清楚。如果定义了符号,则将编译
#ifdef指令中的代码。为什么不能只定义(或取消定义)makefile/build 脚本中的符号? -
@beeselmane 大多数编译器都可以选择将预处理器的输出保存在文件中。所以用那个选项编译你的代码。