在Sublime Text中新建编译系统,配置如下:
{
"working_dir": "C:\\Keil_v5\\C51\\BIN",
"cmd": ["CMD", "/C", "C51 ${file} & LX51 ${file_path}\\\\${file_base_name}.obj to ${file_path}\\\\${file_base_name}.abs & OHx51 ${file_path}\\\\${file_base_name}.abs & ECHO OFF & DEL ${file_path}\\\\${file_base_name}.lst & DEL ${file_path}\\\\${file_base_name}.obj & DEL ${file_path}\\\\${file_base_name}.map & DEL ${file_path}\\\\${file_base_name}.abs"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"encoding": "GBK",
"shell": true
}
配置文件保存为MCU51.sublime-build,保存在插件目录下的User目录里,打开一个单片机的C语言文件,选择编译系统为MCU51,按Ctrl+B开始编译,这里需要注意要编译很多次才能成功,具体原因不详。这里推荐另一种更有效的方法:
新建MCU51.bat文件,文件内容如下:
SET KEILPATH=C:\Keil_v5\C51\BIN
%KEILPATH%\C51.exe %1.c
%KEILPATH%\LX51.exe %1.obj to %1.abs
%KEILPATH%\OHx51.exe %1.abs
@ECHO OFF
DEL %1.lst
DEL %1.obj
DEL %1.map
DEL %1.abs
保存在Keil的C:\Keil_v5\C51\BIN目录下。
然后在Sublime Text中新建编译系统,配置如下:
{
"working_dir": "C:\\Keil_v5\\C51\\BIN",
"cmd": ["MCU51.bat", "${file_path}\\\\${file_base_name}"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"encoding": "GBK",
"shell": true
}
配置文件保存为MCU51BAT.sublime-build,保存在插件目录下的User目录里,打开一个单片机的C语言文件,选择编译系统为MCU51BAT,按Ctrl+B一次性编译成功(当然,代码没错的前提下)。
由此看出Sublime Text执行命令行时并不一定会成功,还是用Windows自带的批处理脚本比较靠谱。