STM32CubeIDE后构建步骤执行objcopy命令报错,是否缺失路径变量?
解决STM32CubeIDE后构建步骤中
arm-none-eabi-objcopy命令无法识别的问题 核心原因:STM32CubeIDE自带的GCC工具链路径未加入系统环境变量,或后构建步骤未使用绝对路径调用命令,导致系统找不到该工具。
解决方案一:使用工具链绝对路径调用命令
- 找到STM32CubeIDE安装目录下的工具链
bin文件夹路径,默认路径示例:- Windows:
C:\ST\STM32CubeIDE_1.13.0\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202309131626\tools\bin - Linux:
/home/user/stm32cubeide_1.13.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.linux64_1.1.0.202309131626/tools/bin - macOS:
/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.macosx_1.1.0.202309131626/tools/bin
- Windows:
- 修改后构建命令,将
arm-none-eabi-objcopy替换为绝对路径,Windows下需给带空格的路径加引号,示例:"C:\ST\STM32CubeIDE_1.13.0\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.11.3.rel1.win32_1.1.0.202309131626\tools\bin\arm-none-eabi-objcopy.exe" -O binary main.elf main.tmp.bin
- 找到STM32CubeIDE安装目录下的工具链
解决方案二:将工具链路径加入系统环境变量
- Windows:右键「此电脑」→「属性」→「高级系统设置」→「环境变量」,在系统变量
Path中添加工具链bin目录路径,重启STM32CubeIDE生效。 - Linux/macOS:编辑
~/.bashrc(Linux)或~/.zshrc(macOS),添加一行:
保存后执行export PATH=$PATH:/path/to/your/stm32cubeide/tools/binsource ~/.bashrc或source ~/.zshrc,再重启STM32CubeIDE。
- Windows:右键「此电脑」→「属性」→「高级系统设置」→「环境变量」,在系统变量
验证方法
在STM32CubeIDE的「终端」面板输入arm-none-eabi-objcopy --version,若能输出版本信息,说明路径配置正确;若报错,检查路径是否准确。同时注意后构建步骤中的文件路径(如main.elf)尽量用绝对路径或相对项目根目录的路径,避免因工作目录问题找不到文件。
内容的提问来源于stack exchange,提问作者Paul Flory
相关产品推荐
相关产品推荐

