Linker 错误:L6218E:从main.o Keil STM32F4引用的未定义符号

Linker 错误:L6218E:从main.o Keil STM32F4引用的未定义符号,linker,keil,stm32f4,Linker,Keil,Stm32f4,我面临链接器错误: .\STM32F4xx-Nucleo\DMA_LP_App.axf: Error: L6218E: Undefined symbol HAL_UART_Init (referred from main.o). 我已经在option->c/c++->include path中添加了文件stm32f4xx\u hal\u uart.c及其路径,但它仍然显示错误 我已经通过RTE管理器添加了该文件,但仍然存在相同的错误 如果我添加两次文件,它会显示: .\STM32F4xx-Nu

我面临链接器错误:

.\STM32F4xx-Nucleo\DMA_LP_App.axf: Error: L6218E: Undefined symbol HAL_UART_Init (referred from main.o).
我已经在
option->c/c++->include path
中添加了文件
stm32f4xx\u hal\u uart.c
及其路径,但它仍然显示错误

我已经通过RTE管理器添加了该文件,但仍然存在相同的错误

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

.\STM32F4xx-Nucleo\DMA_LP_App.axf: Error: L6200E: Symbol __asm___20_stm32f4xx_hal_uart_c____REV16 multiply defined (by stm32f4xx_hal_uart_1.o and stm32f4xx_hal_uart.o).

请让我来了解这个问题的原因和解决的办法。

问题是通过使用定义来启用项目的代码> STM32 F4XXHALXCONF.H./C++ >文件中的模块。要解决此问题,我必须添加以下行:

#包括“abcxyz.h”//etc
#ifdef_uucplusplus
外部“C”{
#恩迪夫
/*源文件的内容*/
#ifdef_uucplusplus
}
#恩迪夫