Windows10下如何修改TI Code Composer Studio自动生成Makefile的SHELL
解决方案
以下是经过验证的三种可行方案,按实施成本从低到高排序:
方案1:项目级注入SHELL变量(最推荐)
你提供的生成makefile末尾自带-include ../makefile.init逻辑,可利用make的变量覆盖规则直接注入配置:
- 在你的项目根目录(和生成的makefile同级的上级目录,即工作区项目根目录)新建名为
makefile.init的文件 - 文件内写入以下内容:
override SHELL = sh.exe # 若sh.exe不在系统PATH中,可写绝对路径,例如: # override SHELL = C:/Git/usr/bin/sh.exe
该方案无需修改CCS任何配置,仅对当前项目生效,升级CCS或编译器都不会受影响,make执行时override关键字会强制覆盖之前生成的SHELL = cmd.exe配置,完全满足需求。
方案2:全局修改CCS makefile生成模板
如果需要所有新生成的项目默认使用sh.exe作为SHELL,可直接修改CCS内置的TI专属模板文件:
- 关闭CCS,进入CCS安装目录,CCS10的模板默认路径为:
C:\ti\ccs1040\ccs\ccs_base\managedbuild\com.ti.ccs.managedbuild.gnu_1.0.0\templates - 在该目录下搜索包含
SHELL = cmd.exe的模板文件,直接将该行替换为SHELL = sh.exe - 重启CCS后,所有新生成的makefile都会默认使用sh.exe作为SHELL
注意:每次升级CCS或重装TI代码生成工具后,需要重新修改模板文件。
方案3:修正临时构建命令配置
你之前使用的sh.exe -c gmake.exe args参数传递错误的问题,可通过变量占位符解决:
- 打开项目属性 -> 构建 -> 构建器设置
- 将构建命令修改为:
sh.exe -c "gmake.exe $*"
该配置会将CCS传递的所有构建参数完整传入gmake,不会出现参数丢失问题。
注意事项
无论使用哪种方案,都需要确保sh.exe所在路径已添加到系统PATH环境变量中,或直接在SHELL配置中写绝对路径,避免gmake执行时找不到SHELL程序报错。
内容的提问来源于stack exchange,提问作者Harvey
相关产品推荐
相关产品推荐

