Jes*_*sse 5 linux avr makefile build-system sublimetext2
首先,我想说我是崇高文本编辑器的新手,我喜欢它.我没有使用JSON的经验,但它看起来并不困难.
我正在尝试编写一个构建系统,它将调用一个bash脚本,将一个makefile移动到我正在工作的目录中并调用makefile,它将使用avr-gcc编译我的c代码然后使用它将其闪存到连接的微控制器上AVRDUDE.
我意识到sublime text 2只能有一个"cmd"对象,所以我尝试从终端模拟器调用一行中的所有东西,它完全符合我的预期.电话是:
checkAVRmakefile.sh $PWD; make PROJECTNAME+=hello install
Run Code Online (Sandbox Code Playgroud)
我的脚本位于我的$ PATH环境变量的目录中,我将它传递给我正在使用的目录,因此它在那里检查makefile,如果它不存在,则从我保留所有目录的目录中复制它我的makefile.然后我调用make并将其命名为I,并调用该项目并安装闪存avr微控制器.
我用崇高做的是这样的:
{
"shell":true,
"cmd":[ "checkAVRmakefile.sh", "$file_path", ";" ,"make","PROJECTNAME+=$file_base_name","install"],
}
Run Code Online (Sandbox Code Playgroud)
这只运行bash脚本,它将makefile放在目录中但不运行make.
有谁看到我哪里出错了?
任何帮助表示赞赏.我也在崇高的论坛上问过类似的问题,但没有人回答.我也在Ubuntu上使用ST2.
Jes*_*sse 13
我发现了我的问题.这是我的bash脚本没有处理我的目录名中的空格和我没有使用shell的组合:在构建系统中核心的真实对象.那么现在有效的是:
{
"shell":true,
"cmd":["check.sh $file_path && make PROJECTNAME+=$file_base_name install"]
}
Run Code Online (Sandbox Code Playgroud)
看来,使用shell:true对象我不需要cmd列表中的每个输入都在引号中,只需要一个长字符串.
(感谢来自reddit的u/Scoo_建议修复)希望这可以帮助其他人
编辑(17-3-2014):我已将用于构建我的AVR项目的文件上传到我的git hub:https: //github.com/Jesse-Millwood/AVR-Stuffs.git