*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: _DELAY
时间: 2024-12-08 10:12:14 浏览: 51
这个警告信息通常出现在嵌入式系统编程中,特别是使用C语言进行微控制器编程时。让我来解释一下这个警告的含义和可能的解决方法:
1. 警告含义:
"_DELAY"是一个未解析的外部符号。这意味着编译器在代码中找到了对DELAY函数的引用,但在链接阶段没有找到这个函数的定义。
2. 可能的原因:
- DELAY函数在代码中被调用,但未定义。
- 使用的库文件中缺少DELAY函数的实现。
- 拼写错误,可能应该使用其他延迟函数。
3. 解决方法:
- 定义一个名为DELAY的函数。
- 如果使用了标准库,检查是否包含了正确的头文件。
- 使用编译器提供的延迟函数,如__delay_ms()或__delay_us()(注意是双下划线)。
- 检查拼写是否正确。
4. 示例代码:
```c
#include <util/delay.h> // 根据使用的编译器可能有所不同
void delay_function() {
_delay_ms(1000); // 延迟1秒
}
```
5. 注意事项:
- 确保包含正确的头文件,如<util/delay.h>。
- 某些编译器可能使用不同的延迟函数名称。
- 延迟函数的参数单位可能因实现而异,请查阅具体文档。
相关问题
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: AD_RESULT_MV0 MODULE: .\Objects\寻径小车.obj (________) ADDRESS: 019FH *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: AD_RESULT1 MODULE: .\Objects\寻径小车.obj (________) ADDRESS: 01CCH *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: AD_RESULT1 MODULE: .\Objects\寻径小车.obj (________) ADDRESS: 01CEH *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: AD_RESULT_MV1 MODULE: .\Objects\寻径小车.obj (________) ADDRESS: 01DCH *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: AD_RESULT_MV1 MODULE: .\Objects\寻径小车.obj (________) ADDRESS: 01DEH *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: AD_RESULT_MV0 MODULE: .\Objects\寻径小车.obj (________) ADDRESS: 00C4H
这几个警告也是 REFERENCE MADE TO UNRESOLVED EXTERNAL,意思是引用了未解析的外部符号。这通常是由于程序中引用了某个外部变量或函数,但编译器无法找到该变量或函数的定义。这几个警告还提示了引用该符号的地址,需要检查这些地址所在的代码位置。
解决方法同样是检查程序中是否缺少了某个头文件或库文件,或者是否需要手动添加某个库文件。同时,还需要确保所引用的外部变量或函数的定义是正确的。
在这个例子中,需要检查是否有定义 AD_RESULT0、AD_RESULT1、AD_RESULT_MV0 和 AD_RESULT_MV1 这几个变量。如果这些变量是在其他的源文件中定义的,需要将这些源文件编译成目标文件,并将目标文件添加到链接器的链接选项中。如果这些变量是在库文件中定义的,需要将库文件添加到链接器的链接选项中。
希望这些信息能够帮到你。如果还有其他问题,请随时询问。
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: ARRY
这个警告*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: ARRY 可能是因为你在代码中引用了一个未解析的外部符号ARR。引用提到,可以尝试在代码中使用扩展的链接器(extended linker)。引用指出,全局变量的添加可能解决了这个问题。在你的代码中,你可以尝试通过将ARRY定义为全局变量来解决这个问题。另外,引用也提到了可能是在写.D和.H文件时出现了问题,你可以检查你的代码中是否正确声明了该变量。
阅读全文