【发布时间】:2016-02-11 17:58:22
【问题描述】:
如果我的程序做了一个
#ifdef USE_REL_DEF
# define MAX_NUM_REL 10
#else
# define MAX_NUM_REL 5
#endif
是否可以检查生成的二进制文件以了解 MAX_NUM_REL 的最终值?我没有在程序中放置日志/打印的选项,但我确实有生成的二进制文件。
我尝试使用 nm 和 objdump,但没有找到符号的值。
【问题讨论】:
-
#define 本身并不直接让跟踪进入二进制文件。定义被它们各自的值(10 或 5)替换,它们在编译时出现在代码中。
-
这些符号甚至在编译开始之前就在预处理阶段消失了。
-
您可能会在调试符号中找到它,具体取决于您的环境和构建设置。