Win11下STM32CubeIDE通过构建命令执行bash脚本的方案
解决STM32CubeIDE自定义构建命令调用build.sh的问题
正确的自定义构建命令
Win11环境下直接输入.sh脚本路径无法生效,因为系统默认不会用git-bash解析shell脚本,必须显式调用git-bash执行。在项目属性->C/C++ Build的自定义命令框中输入以下内容:
"C:\Program Files\Git\git-bash.exe" -c "source ${workspace_loc:/${ProjName}/build.sh}"
补充说明
- 若git安装在
Program Files (x86)目录,路径改为"C:\Program Files (x86)\Git\git-bash.exe" - 可用环境变量替代硬编码路径,比如
"%PROGRAMFILES%\Git\git-bash.exe",适配不同安装位置 - 若脚本无需
source(仅执行命令而非加载环境变量),可简化为:"C:\Program Files\Git\git-bash.exe" "${workspace_loc:/${ProjName}/build.sh}"
更优解决方案
方案1:整合脚本逻辑到IDE构建配置
- 打开项目属性->C/C++ Build->Settings,在Build Command中直接填写
make build_all - 切换到Environment标签页,将
stm32.sh中定义的环境变量逐一添加,替代source stm32.sh的操作 - 若需切换到项目目录,在Pre-build Steps中添加命令:
"C:\Program Files\Git\git-bash.exe" -c "cd ${workspace_loc:/${ProjName}}"
这种方式依赖IDE原生构建流程,避免外部脚本依赖,更符合IDE使用规范。
方案2:优化脚本调用方式
- 在git-bash中给
build.sh添加执行权限:chmod +x build.sh - 在IDE自定义构建命令中使用git-bash的环境变量路径,比如:
"%PROGRAMFILES%\Git\git-bash.exe" "${workspace_loc:/${ProjName}/build.sh}"
这种方式保留脚本灵活性,同时避免路径硬编码问题。
内容的提问来源于stack exchange,提问作者Ali Rostami
相关产品推荐
相关产品推荐

