c:\st\stm32cubeide_1.12.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\bin\ld.exe: ./Core/Src/lcd.o:D:/svncheck/02_EmbeddedSoftware/02_MCU_Projects/STM32/ZNWF_V2.0/Debug/../Core/Src/i2c.c:26: multiple definition of `hi2c1'; ./Core/Src/i2c.o:D:/svncheck/02_EmbeddedSoftware/02_MCU_Projects/STM32/ZNWF_V2.0/Debug/../Core/Src/i2c.c:26: first defined here STM32的 怎么解决
时间: 2023-07-14 07:53:18 浏览: 242
STM32-cubeide 1.12.0
这个错误提示是因为在编译链接时,发现了 `hi2c1` 这个变量被多次定义了。可能是因为在不同的源文件中都引用了同一个头文件,或者在同一个源文件中重复定义了该变量。为了解决这个问题,你可以尝试以下几种方法:
1. 在头文件中使用 `extern` 声明该变量,而在源文件中定义该变量。这样可以确保变量只被定义一次。
2. 如果在同一个源文件中重复定义了该变量,则可以将其定义放到一个单独的源文件中,并将该源文件编译为一个单独的目标文件,然后再链接到主程序中。
3. 如果在不同的源文件中都引用了同一个头文件,可以考虑将该头文件中的变量定义改为 `static`,这样可以确保变量只在当前源文件中可见,避免被多次定义。
希望以上方法能够帮助你解决问题。
阅读全文