我以前一直在使用 CubeIDE 进行
STM32 开发。最近我转而使用 VScode 和 makefile。在我看来,这是一个非常积极的升级,但今天我遇到了一个问题。我试图将 CMSIS DSP 库包含到我的项目中。我使用 cubeMX 软件为我生成 makefile。在我的 makefile 中,我定义了以下 LDFLAGS:
- #######################################
- # LDFLAGS
- #######################################
- # link script
- LDSCRIPT = STM32H750VBTx_FLASH.ld
- # libraries
- LIBS = -lc -lm -lnosys -larm_cortexM7lfsp_math
- LIBDIR = -Ldsp/lib
- LDFLAGS = $(MCU) -specs=nano.specs -T$(LDSCRIPT) $(LIBDIR) $(LIBS) -Wl,-Map=$(BUILD_DIR)/$(TARGET).map,--cref -Wl,--gc-sections -static
尝试编译时出现以下错误:
- Drivers/CMSIS/Include/cmsis_gcc.h:1852:57: error: conflicting types for '__QSUB'
- 1852 | __attribute__((always_inline)) __STATIC_INLINE int32_t __QSUB( int32_t op1, int32_t op2)
- | ^~~~~~
- In file included from Src/model.c:22:
- Drivers/CMSIS/Include/arm_math.h:5129:12: note: previous implicit declaration of '__QSUB' was here
- 5129 | *pIb = __QSUB(product2, product1);
- | ^~~~~~
我知道使用 CubeIDE 时代码运行没有问题。感谢任何输入。