STM32
直播中

贺服窍

7年用户 1003经验值
私信 关注
[问答]

STM32CubeIDE编译工程报错如何解决?

使用CubeIDE编译任意工程,出现ERROR:87,编译过程工具链编译.OBJ文件参数错误,已经重装过CubeIDE,问题依旧存在。有什么解决办法码
错误代码
make -j16 all
arm-none-eabi-gcc "../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F401xE -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.d" -MT"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o"
process_begin: CreateProcessW(C:SoftWoreSTM32_Cube_IDESTM32CubeIDEpluginscom.st.stm32cube.ide.mcu.externaltools.make.win32_2.1.300.202402091052toolsbinsh.exe, C:/SoftWore/STM32_Cube_IDE/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.make.win32_2.1.300.202402091052/tools/bin/sh.exe -c "arm-none-eabi-gcc "../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F401xE -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.d" -MT"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o"", ...) failed.
make (e=87): 参数错误。
make: *** [Drivers/STM32F4xx_HAL_Driver/Src/subdir.mk:64: Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o] Error 87
"make -j16 all" terminated with exit code 2. Build might be incomplete.



回帖(1)

卞轮辉

2024-7-23 17:25:00
根据您提供的错误信息,这个问题可能是由于编译器参数不正确或者某些依赖库缺失导致的。请尝试以下步骤来解决这个问题:

1. 清理项目:在CubeIDE中,选择“Project”菜单,然后选择“Clean”,这将清除之前的编译结果。

2. 检查项目配置:确保您的项目配置正确,包括目标微控制器、编译器选项等。您可以在CubeIDE中选择“Project”菜单,然后选择“Properties”来检查和修改这些设置。

3. 检查包含路径:确保所有需要的头文件路径都已正确添加到项目中。在“Properties”窗口中,选择“C/C++ Build” > “Settings” > “Tool Settings” > “Include Paths”,然后检查路径列表。

4. 更新STM32Cube库:确保您使用的是最新版本的STM32Cube库。您可以从ST官方网站下载最新版本的库,并将其替换到项目中的相应位置。

5. 检查代码:检查您的代码中是否有语法错误或不符合编译器要求的地方。这可能需要您逐行检查代码,或者使用一些代码检查工具来帮助您。

6. 降低并行编译数量:在您的错误信息中,使用了`make -j16`,这表示同时进行16个编译任务。有时,这可能会导致资源不足或编译错误。您可以尝试减少并行编译任务的数量,例如使用`make -j4`。

7. 如果问题仍然存在,您可以尝试在CubeIDE中创建一个新的项目,然后将您的源代码和配置文件复制到新项目中,看看是否能够正常编译。

8. 如果以上方法都无法解决问题,您可以尝试在其他IDE(如Keil、IAR等)中编译您的项目,以排除CubeIDE本身的问题。

希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便我们能够更好地帮助您。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分