Sublime Text 需手动配置 Fortran Build System 调用 gfortran,前提是系统已安装并正确配置 PATH;需创建 JSON 格式 .sublime-build 文件,设置编译命令、错误正则、语法选择器及 Run 变体,并注意路径编码与环境兼容性。

Sublime Text 本身不内置 Fortran 编译支持,必须通过 Build System 手动配置调用外部编译器(如 gfortran),且需确保系统已安装可用的 Fortran 工具链。否则任何配置都无效。
确认 gfortran 是否可用且在 PATH 中
这是最关键的前置条件。Sublime 的构建系统本质是执行 shell 命令,如果终端里都找不到 gfortran,Sublime 肯定调用失败。
- 在终端运行
which gfortran或gfortran --version,确认输出正常 - Windows 用户注意:MinGW-w64 或 MSYS2 安装后,需把
gfortran.exe所在目录(如C:\msys64\mingw64\bin)加入系统PATH -
macOS 用户若用 Homebrew 安装,路径通常是
/opt/homebrew/bin/gfortran(Apple Silicon)或/usr/local/bin/gfortran(Intel),但 Sublime 默认继承 GUI 环境的 PATH,可能不包含它——此时需从终端启动 Sublime:open -a "Sublime Text"或subl .
创建自定义 Fortran Build System(.sublime-build)
Sublime 的构建系统是 JSON 格式文件,存放在 ~/Library/Application Support/Sublime Text/Packages/User/(macOS)、%APPDATA%\Sublime Text\Packages\User\(Windows)或 ~/.config/sublime-text/Packages/User/(Linux)。
新建文件,例如 Fortran-gfortran.sublime-build,内容如下:
{
"cmd": ["gfortran", "-o", "${file_base_name}", "${file}"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.fortran, source.f90, source.f95, source.f03, source.f08",
"shell": true,
"variants":
[
{
"name": "Run",
"cmd": ["./${file_base_name}"]
}
]
}
-
"cmd"是编译命令;-o ${file_base_name}输出可执行文件名与源文件同名(不含扩展名) -
"file_regex"让错误行能被点击跳转;Fortran 错误格式通常是file.f90:12:5: error: ...,该正则可匹配 -
"selector"确保该构建系统仅在 Fortran 文件中自动激活(需配合语法高亮插件,如Fortran Syntax) -
"shell": true允许直接写gfortran而非完整路径(依赖 PATH);若想硬编码路径(避免 PATH 问题),把"gfortran"换成"/usr/local/bin/gfortran"或"C:\\msys64\\mingw64\\bin\\gfortran.exe" -
"variants"添加了Run变体,编译后按Ctrl+Shift+B→ 选Fortran-gfortran — Run即可执行
常见报错与对应处理
构建失败时,Sublime 底部会显示错误面板,重点看第一行和路径是否合理。
-
gfortran: command not found→ PATH 未生效,或shell设为false但没写绝对路径 -
undefined reference to `main'→ 源文件没写program ... end program,或用了subroutine/function却没主程序 - 中文路径下编译失败(尤其 Windows)→ Sublime 默认用系统 ANSI 编码读取路径,而
gfortran期望 UTF-8;解决方法:避免中文路径,或改用相对路径构建(如"cmd": ["gfortran", "-o", "a.out", "${file_name}"]) - 修改代码后
Run仍执行旧二进制 → Sublime 不自动清理上一次输出;可在"variants"的Run中加清理步骤:"cmd": ["sh", "-c", "gfortran -o ${file_base_name} ${file} && ./${file_base_name}"]
Fortran 构建系统看似简单,但实际成败几乎全取决于环境变量、路径编码和编译器版本兼容性。不要跳过终端验证这一步——哪怕只多敲一次 gfortran --version,也能省掉半小时排查时间。











