vscode配置fortran环境的关键是正确设置gfortran、python3和fortls三者路径与权限:需确保gfortran和python3均在系统path中,fortls必须手动pip安装并显式指定路径,调试须用-g编译并配置cppdbg类型的launch.json。

VSCode 本身不运行 Fortran,它只调度外部工具;没配通 gfortran 和 fortls,连语法高亮都可能飘忽不定,更别说调试停点、变量监视了。
确认 gfortran 和 python3 都在 PATH 中
Modern Fortran 扩展不是独立程序,它靠 gfortran 做语法检查,靠 python3 启动 fortls 提供跳转和补全。任一缺失,状态栏就卡在 “Fortran LS Starting…”。
- 终端里分别执行
gfortran --version和python3 --version,必须都能输出版本号 - Windows 用户:MinGW-w64 或 LLVM-MinGW 安装后,
gfortran.exe所在目录(如C:llvm-mingwin)要手动加进系统环境变量PATH;GUI 启动的 VSCode 不继承命令行临时 PATH - macOS/Linux 用户:若用
pyenv或多 Python 版本,确保python3指向那个能跑pip install fortls的版本,别用/usr/bin/python3(常不带 pip)
fortls 必须手动安装并显式配置路径
扩展界面点“自动安装 fortls”大概率静默失败,且不报错——你看到启动卡住,基本就是这步断了。
- 终端运行:
pip install fortls(Linux/macOS)或pip install --user fortls(Windows 权限受限时) - 验证安装:
fortls --version应输出类似fortls 2.4.1;若提示command not found,说明可执行文件路径没进 PATH(Linux/macOS 查~/.local/bin,Windows 查%APPDATA%PythonPython311Scripts) - VSCode 设置中强制指定路径比依赖
"auto"可靠得多:"fortran.fortls.path": "/home/you/.local/bin/fortls"(Linux/macOS)"fortran.fortls.path": "C:\Users\You\AppData\Roaming\Python\Python311\Scripts\fortls.exe"(Windows)
调试必须用 -g 编译 + launch.json,Code Runner 默认不支持
Code Runner 插件默认用 gfortran -o $fileNameWithoutExt $fileName 编译,不加 -g,GDB 就看不到源码行和变量名——设了断点也停不住。
- 要么改
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编译出的可执行文件;Modern Fortran 扩展自己不提供调试器,它复用 C/C++ 扩展(ms-vscode.cpptools)的 GDB 集成
气象/科研项目常见坑:includePaths 和预处理文件支持
气象模型(WRF、CESM 等)大量使用 .F90 预处理文件和 netcdf/mpi 模块,不配好路径,USE 语句就标红、跳转失效。
-
.F90文件默认被gfortran自动识别为需预处理,无需额外开关 - 在
settings.json中配置fortran.linter.includePaths,指向模块.mod文件所在目录,例如:"fortran.linter.includePaths": ["${workspaceFolder}/lib/mod", "/usr/include/netcdf"] - 如果
#include "netcdf.inc"报错 “can't find include file”,说明路径没对上,不是扩展问题,是 lint 路径配置遗漏
最易忽略的一点:VSCode GUI 启动时不会自动加载 shell 的 PATH(尤其 macOS/Linux 的 ~/.zshrc 或 Windows 的用户级 PATH 修改),哪怕终端里 gfortran 和 fortls 都能跑,VSCode 里照样找不到——重启 VSCode 或从终端用 code . 启动,才是真实环境。











