Sublime调用gfortran失败主因是环境变量未正确继承或构建系统配置不匹配;需确保GUI启动方式正确、PATH生效、Fortran.sublime-build中cmd/selector/variants字段精准无误,并配合语法高亮插件与调试工具补全功能。

确认 gfortran 能被 Sublime 真正“看见”
Sublime 无法调用 gfortran,90% 的问题出在这一步——不是配置写错了,而是它根本找不到编译器。终端里能跑 gfortran --version,不等于 Sublime 就能用。
- macOS 用户:Homebrew 安装的
gfortran通常在/opt/homebrew/bin/gfortran(Apple Silicon)或/usr/local/bin/gfortran(Intel),但 GUI 启动的 Sublime 不读~/.zshrc;必须从终端执行open -a "Sublime Text"或env PATH="/opt/homebrew/bin:$PATH" subl - Linux 用户:如果用 snap 安装 Sublime,它默认被沙盒隔离,
PATH里再全也没用;换 deb/rpm/tarball 版本 - Windows 用户:MinGW-w64 的
gfortran.exe路径(如C:msys64mingw64ingfortran.exe)必须加进系统环境变量PATH,且改完后要彻底重启 Sublime(不只是关闭再开)
新建 Fortran.sublime-build 文件并填对关键字段
Build System 是纯 JSON 配置,不是脚本,不能写注释、不能少逗号、路径不能错位。重点就三个字段:cmd、selector、variants。
-
cmd:Linux/macOS 可直接写["gfortran", "-o", "${file_base_name}", "${file}"];Windows 必须用完整路径,比如["C:\msys64\mingw64\bin\gfortran.exe", "-o", "${file_base_name}.exe", "${file}"](注意双反斜杠) -
selector:必须设为"source.f90"或"source.fortran",否则你打开.f90文件时 Sublime 不会自动选中这个构建系统 -
variants:加一个"Run"变体,命令是["./${file_base_name}"](macOS/Linux)或["cmd", "/c", "${file_path}/${file_base_name}.exe"](Windows);别漏掉working_dir,否则运行时找不到可执行文件
为什么按 Ctrl+B 没反应或报 “command not found”
这不是 Sublime 的 bug,是环境变量加载机制和构建系统匹配逻辑共同导致的静默失败。
- 现象:按下
Ctrl+B,底部状态栏一闪而过,没输出、没错误、没弹窗——大概率是selector不匹配,或者当前文件语法高亮没设对(右下角点开,手动选 “Fortran 90”,不是 “Plain Text”) - 现象:
gfortran: command not found:说明 Sublime 启动时没继承到PATH;macOS/Linux 下不要依赖 GUI 启动方式,Windows 下检查系统环境变量是否生效(任务管理器 → 性能 → 打开资源监视器 → 查看 Sublime 进程的环境变量) - 现象:编译成功但
Run报错 “permission denied”:Linux/macOS 下生成的可执行文件可能没执行权限,可在variants的cmd前加一条chmod +x(如["sh", "-c", "gfortran -o ${file_base_name} ${file} && chmod +x ${file_base_name}"])
Fortran 语法高亮和调试支持怎么补全
Sublime 默认不带 Fortran 语法识别,也不支持断点调试——这两块得靠插件补,但别装太多,容易冲突。
- 语法高亮:用 Package Control 安装
Fortran插件(作者 315234),安装后打开.f90文件,右下角会自动识别为 “Fortran 90”;若没触发,手动点击切换 - 调试:想单步执行,推荐
sublimeGDB,但必须配对使用gdb(不是gfortran);配置sublimeGDB.sublime-settings时,commandline字段要明确带--interpreter=mi,否则 GDB 启动即退出 - 注意:Intel Fortran 编译器(
ifort)用户,不能直接套用gfortran的 build 配置;需把cmd换成ifort路径,并确认ipsxe-comp-vars.bat已预加载环境(意味着你得用批处理封装启动)










