Sublime Text 配置 MIPS 汇编环境需三步:安装 mips-linux-gnu 工具链并验证版本、安装绑定 MIPS Assembly 语法高亮插件、编写调用 mips-linux-gnu-gcc 的构建系统;缺一即导致 Ctrl+B 失败。

Sublime Text 本身不带汇编器,配置 MIPS 汇编环境 = 安装真实工具链 + 绑定语法高亮 + 写对构建系统。缺任一环,Ctrl+B 都会失败或报错。
确认 mips-linux-gnu-gcc 是否可用
Sublime 不执行汇编,只调命令。必须先在终端验证工具链能跑通:
- Windows 用户需安装
mips-linux-gnu-gcc(如通过 MSYS2:运行pacman -S mingw-w64-i686-mingw-w64-gcc不行,得找交叉工具链包,推荐下载 prebuilt mips-linux-gnu toolchain 解压后把bin目录加进PATH) - Linux/macOS 可用
sudo apt install gcc-mips-linux-gnu(Ubuntu/Debian)或brew install mips-linux-gnu-binutils(macOS + Homebrew) - 验证命令:
mips-linux-gnu-gcc --version和mips-linux-gnu-as --version都应返回版本号,否则构建系统必然失败 - 注意:
mips-linux-gnu-gcc实际是前端,它会调用mips-linux-gnu-as和mips-linux-gnu-ld;单独用as或ld也可,但需手动写链接步骤
安装并绑定 MIPS 汇编语法高亮
默认 Sublime 打开 .s 或 .asm 文件是 Plain Text,因为没插件、也没后缀绑定:
- 用
Ctrl+Shift+P→ 输入Package Control: Install Package→ 搜MIPS Assembly(推荐MIPS Assembly Syntax,支持.s和.asm) - 打开一个
hello.s文件 → 点右下角语言名(如 “Plain Text”)→ 输入MIPS→ 选MIPS Assembly - 右键该文件标签 →
Open all with current extension as→ 再次选MIPS Assembly(这步必须做,否则新.s文件仍不生效) - 注意:
.S(大写)和.s在 Sublime 中视为不同扩展名,需分别绑定
编写 MIPS 构建系统(build system)
构建系统本质是让 Sublime 调起外部命令。MIPS 汇编常见流程是:汇编 → 链接 → 运行(常借助 qemu-mips):
- 新建构建系统:
Tools → Build System → New Build System - 填入以下内容(路径含空格或中文时,所有
$file类变量必须加双引号):
{
"cmd": ["mips-linux-gnu-gcc", "-static", "-o", "$file_base_name", "$file"],
"shell": true,
"working_dir": "$file_path",
"selector": "source.mips-assembler",
"file_regex": "^(.*?):([0-9]+):([0-9]+): (.*)$",
"variants": [
{
"name": "Run",
"cmd": ["mips-linux-gnu-gcc", "-static", "-o", "$file_base_name", "$file", "&&", "qemu-mips", "./$file_base_name"]
}
]
}
-
selector必须匹配你所用语法插件的 scope(查法:打开.s文件 →Ctrl+Shift+P→ 输入Developer: Show Scope Name,看第一行类似source.mips-assembler) -
-static很关键:避免目标机无 libc;若用qemu-mipsel,则需对应mipsel-linux-gnu-gcc - 若提示
qemu-mips: command not found,说明没装 QEMU 或没加进PATH(Windows 推荐用 QEMU for Windows)
容易忽略的坑:寄存器名大小写、入口符号、调试信息
MIPS 汇编对大小写敏感,且 GNU Assembler 默认要求入口为 _start(不是 main),否则链接时报 undefined reference to '_start':
- 确保代码以
.globl _start开头,且有_start:标签 - 寄存器名全小写:
$t0正确,$T0或t0错误 - 若需调试,构建命令加
-g参数,并用qemu-mips -g 1234+mips-linux-gnu-gdb连接 - Windows 下路径含空格(如
C:\My Project\test.s)时,"$file"必须带引号,否则mips-linux-gnu-gcc会把路径拆成多个参数报错
真正卡住人的从来不是语法,而是 mips-linux-gnu-gcc 找不到、selector 对不上、或者 _start 拼错了。每一步都建议在终端手动跑通再塞进 Sublime。


















