错误:L6218E:来自main.o Keil STM32F4的未定义符号

时间:2017-03-07 14:01:53

标签: linker keil stm32f4

我正面临链接器错误:

  

。\ STM32F4xx-Nucleo \ DMA_LP_App.axf:错误:L6218E:未定义的符号HAL_UART_Init(从main.o引用)。“

我已在stm32f4xx_hal_uart.c添加了文件option -> C/C++ -> include path及其路径,但仍显示错误。

我已经通过RTE管理器添加了文件,但仍然是同样的错误。

如果我将文件添加两次,则会显示:

  

。\ STM32F4xx-Nucleo \ DMA_LP_App.axf:错误:L6200E:符号__asm___20_stm32f4xx_hal_uart_c____REV16多次定义(由stm32f4xx_hal_uart_1.o和stm32f4xx_hal_uart.o)。“

请告诉我导致此问题的原因以及可能的解决方案。

2 个答案:

答案 0 :(得分:1)

已经sort.Used定义在我的stm32f4xx_hal_conf.h文件中启用模块。

感谢。

答案 1 :(得分:0)

将.C文件移动到cpp项目时,我遇到了同样的问题。我必须在下面添加行。

#include "abcxyz.h" //etc
#ifdef __cplusplus
extern "C" {
#endif
/*contents of your source file*/   
...
#ifdef __cplusplus
}
#endif