我正做一个项目用到了 Adafruit SSD1306 SPI 接口 OLED 屏。
在 main.c 中,我需要包含该驱动的头文件#include "ssd1306.h"。
但问题是,编译时会出现一系列multiple definition错误。例如:
multiple definition of `HAL_EXTI_ClearConfigLine'; ./Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti 3.o:/Users/chrisk/Documents/STM32CubeIDE/workspace_1.11.0/STM32_AdafruitSSD1306_128x32_Example/Debug/../Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti 3.c:318: first defined here stm32f0xx_hal_exti.c /STM32_AdafruitSSD1306_128x32_Example/Drivers/STM32F0xx_HAL_Driver/Src line 318 C/C++ Problem
multiple definition of `HAL_EXTI_ClearPending'; ./Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti 3.o:/Users/chrisk/Documents/STM32CubeIDE/workspace_1.11.0/STM32_AdafruitSSD1306_128x32_Example/Debug/../Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti 3.c:497: first defined here stm32f0xx_hal_exti.c /STM32_AdafruitSSD1306_128x32_Example/Drivers/STM32F0xx_HAL_Driver/Src line 497 C/C++ Problem
multiple definition of `HAL_EXTI_GenerateSWI'; ./Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti 3.o:/Users/chrisk/Documents/STM32CubeIDE/workspace_1.11.0/STM32_AdafruitSSD1306_128x32_Example/Debug/../Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti 3.c:518: first defined here stm32f0xx_hal_exti.c /STM32_AdafruitSSD1306_128x32_Example/Drivers/STM32F0xx_HAL_Driver/Src line 518 C/C++ Problem
如果我删除#include "ssd1306.h"这一行,错误就会消失,但我需要用到头文件中的一些定义。
我的猜测是ssd1306.h头文件的第 18 行左右包含了某个资源可能是函数实现、全局变量等,而这个资源已经在其他地方被包含过了,因此导致了 “multiple definition” 错误。
|
|