我在嵌入式系统(RTXC)中工作,我需要禁用通过#define命令启用的调试器功能。但是,当我将#define更改为undefine时,编译很顺利,但是当链接器运行时,会遇到关于不存在属于调试代码的符号的错误(应该由调试器变量处理掉)被定义)。是否有任何方法可以确保预处理器变量未定义或保持未定义?
答案 0 :(得分:1)
你的问题的答案是否,Make不能绝对阻止变量被代码中的#define表达式定义。
你似乎有一个难以捉摸的问题。它可能是你的Makefiles中的一个错误,一个拼写错误的指令,一个糟糕的宏(如果你会原谅重言式)或一些微不足道的东西。我建议燃烧森林:切掉一切,直到问题停止,然后看看它藏在哪里。如果您接触HelloWorld并且问题仍然存在,请告诉我们。
答案 1 :(得分:0)
没有。您需要修复代码中的错误。
更具体地说,有些东西引用了#ifdef之外的事情的调试方面。 Make将无法帮助你。
另一种可能性是你有一个.o或以前版本遗留下来的东西;你可能想尝试清理构建树。