vscode配置fortran环境必须确保gfortran和python3均在系统path中,fortls需手动pip安装并显式指定路径,否则语法高亮、跳转、调试等功能全部失效;调试须用-g编译并配置cppdbg类型的launch.json。

gfortran 和 python3 必须都在系统 PATH 中,fortls 必须手动安装并显式配置路径——缺一不可。否则连语法高亮都可能失效,更别说运行或调试。
确认 gfortran 和 python3 都在 PATH 中
VSCode GUI 启动时不会继承终端临时设置的 PATH,所以“终端里能跑”不等于“VSCode 里能调”。必须确保两者在系统级环境变量中可用。
- 在终端执行
gfortran --version和python3 --version,都必须输出版本号 - Windows 用户:MinGW-w64 或 LLVM-MinGW 安装后,要把
gfortran.exe所在目录(如C:mingw64in)加进**系统环境变量**PATH,不是只改当前命令行 - macOS/Linux 用户:若用
pyenv,python3必须指向你用来pip install fortls的那个版本;/usr/bin/python3通常没pip,不能用
手动安装 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 - 注意:
.f90(小写 f)被识别为自由格式;.F90(大写 F)是预处理文件,需额外配fortran.preproc
调试必须配 launch.json 且 type 选 cppdbg
Modern Fortran 扩展本身不提供调试器,它复用 C/C++ 扩展的 cppdbg 调试协议——没装 ms-vscode.cpptools,调试按钮根本不会出现。
- 项目根目录建
.vscode/launch.json,type字段必须是"cppdbg"(不是"fortran",该类型不存在) -
program字段必须指向用-g编译出的可执行文件,例如"${workspaceFolder}/main" - 确保已安装 Microsoft 官方
C/C++扩展(ID:ms-vscode.cpptools),其他调试器(如CodeLLDB)无法替代
最常被忽略的是三件事:一是 gfortran 和 python3 的 PATH 是两个独立关卡,各自验证;二是 fortls 不显式指定路径,语言服务器功能就只剩半套;三是调试时 launch.json 的 type 写错或漏装 C/C++ 扩展,会导致 Ctrl+F5 直接无响应——这些都不是报错,而是静默失败。











