0

我在嵌入式系统(RTXC)中工作,我需要禁用通过#define 命令启用的调试器功能。但是,当我将#define 更改为 undefine 时,编译会正常进行,但是当链接器运行时,它会遇到关于属于调试代码的符号不存在的错误(这应该由调试器变量而不是被定义)。Make 有什么方法可以确保预处理器变量没有被定义或保持未定义?

4

2 回答 2

1

您的问题的答案是否定的,Make 不能绝对阻止变量被代码中的 #define 表达式定义。

你似乎有一个难以捉摸的问题。它可能是你的 Makefile 中的一个错误、一个拼写错误的指令、一个错误的宏(如果你会原谅重言式的话)或一些微不足道的东西。我建议烧毁森林:把所有东西都剪掉,直到问题停止,然后看看它藏在哪里。如果您使用 HelloWorld 并且问题仍然存在,请告诉我们。

于 2009-09-24T19:41:18.777 回答
0

不可以。您需要修复代码中的错误。

更具体地说,有一些东西引用了#ifdef 之外的东西的调试方面。Make 将无法在那里为您提供帮助。

另一种可能性是您有一个 .o 或以前的构建遗留下来的东西;您可能想尝试清理构建树。

于 2009-09-24T18:04:22.123 回答