VSCode运行Fortran需gfortran和python3均在系统PATH中,fortls须手动pip安装并显式配置路径,否则语法高亮、跳转等功能失效;调试必须用-g编译并配置cppdbg类型的launch.json。

VSCode 本身不运行 Fortran 代码,它只调度外部工具;所谓“无法运行”,90% 是 gfortran 或 python3 不在系统 PATH 中,或 fortls 路径没显式写死——这两类问题必须亲手验证,不能依赖“自动检测”。
gfortran 和 python3 必须同时在系统级 PATH 中
Modern Fortran 扩展靠 gfortran 做语法检查和编译,靠 python3 启动 fortls 提供跳转、补全。任一缺失,编辑器立刻退化为纯文本编辑器。
- 在终端执行
gfortran --version和python3 --version,两者都必须输出版本号 - Windows 用户:MinGW-w64 或 LLVM-MinGW 安装后,要把
gfortran.exe所在目录(如C:llvm-mingwin)加进**系统环境变量**PATH,不是只改当前命令行 - macOS/Linux 用户:若用
pyenv,确保python3指向你用来pip install fortls的那个版本;/usr/bin/python3通常没pip,不可用 - VSCode GUI 启动时不继承终端临时设置的
PATH,“终端里能跑” ≠ “VSCode 里能调”
fortls 必须手动安装并显式指定路径
Modern Fortran 扩展界面点“自动安装 fortls”大概率静默失败,且不报错——你看到状态栏卡在 “Fortran LS Starting…” 就基本可以断定这步断了。
- 终端运行:
pip install fortls(Linux/macOS)或pip install --user fortls(Windows 权限受限时) - 验证安装:
fortls --version应输出类似fortls 2.4.1;若提示command not found,说明可执行文件路径没进PATH - Linux/macOS 查
~/.local/bin/fortls,Windows 查%APPDATA%PythonPython311Scriptsortls.exe - 在
.vscode/settings.json中强制写死路径:"fortran.fortls.path": "/home/you/.local/bin/fortls"(Linux/macOS)或"fortran.fortls.path": "C:\Users\You\AppData\Roaming\Python\Python311\Scripts\fortls.exe"(Windows)
Code Runner 默认不生成调试信息,别直接依赖它运行
Code Runner 插件默认用 gfortran -o $fileNameWithoutExt $fileName 编译,不带 -g 参数——生成的可执行文件没有调试信息,后续所有断点、变量监视、源码映射都会失效。
- 要么改
settings.json:"code-runner.executorMap": {"fortran": "gfortran -g -Wall $fileName -o $fileNameWithoutExt && ./$fileNameWithoutExt"} - 要么更推荐:在 VSCode 内置终端手动执行:
gfortran -g -Wall hello_world.f90 -o hello_world && ./hello_world - 如果要调试,必须另配
.vscode/launch.json,类型选cppdbg,program字段必须指向带-g编译出的二进制 - 别忘了装 Microsoft 官方
C/C++扩展,否则cppdbg类型不可用
Fortran 文件后缀和大小写敏感容易被忽略
扩展默认识别 .f90、.f、.F90、.F 等后缀,但大小写规则影响预处理行为:
-
.f90(小写 f)→ 自由格式,被正确识别,无需额外配置 -
.F90(大写 F)→ 预处理文件,需在settings.json中启用:"fortran.preproc": true - 文件名含空格或中文路径,会导致
fortls启动失败或符号解析异常——项目根目录建议用纯英文、无空格
最常被跳过的动作是:验证 gfortran 和 python3 是否真在系统 PATH 中,以及是否真的把 fortls 路径写进了 settings.json。这两个动作不做,后面所有功能都是空中楼阁。


















