我是 C 编程语言和 gcc 的新手。
我正在尝试破译一个相当复杂的 C 程序。我想阅读一个有用的列表文件而不是源文件。
我正在寻找由 gcc 编译器创建的列表文件,其中包含:
- 所有包含的源代码
- xref = 交叉引用列表
- 变量声明位置的引用。例如,如果该行包含
i++;
,然后有一条注释说是i
被宣布。
我搜索了这个,但 gcc 有太多选项,我迷路了。
如果有更好的地方可以问我的问题,请告诉我。
好吧,我是老派,OP 需要的是预处理器输出,是的,它比 IDE 更有启发性。预处理器处理所有 # 语句,例如 #include 和 #ifdef。所以它向您展示了最终成为编译器输入的内容。
g++ 手册页解释了 4 个步骤:
预处理、编译、汇编和链接
它继续解释说该序列可以在任何时候停止。然后在“预处理器选项”下,解释了控制它的方法。正如另一篇文章所述, -E 可以解决问题,但这只是答案的一部分。为了更好地控制,请使用 -f 系列选项,例如 -fdirectives-only。所以OP想要的可能是:
gcc -E -fdirectives-only -o MySrc.lst MySrc.cpp
对于那些使用 C++ 的人,我建议直接使用 g++:
g++ -E -fdirectives-only -o MySrc.lst MySrc.cpp
所需的列表位于 MySrc.lst 中
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)