VSCode配置Fortran语言_科学计算老牌语言的环境搭建全教程

陌墨君_8089

陌墨君_8089

2026-04-14

296人浏览

原创

modern fortran扩展需gfortran和python3均在path中,fortls必须手动pip安装并显式配置路径,否则语法高亮、跳转定义等功能失效;调试须用含-g的编译命令及launch.json配置gdb。

vscode配置fortran语言_科学计算老牌语言的环境搭建全教程

gfortran 装好了、Modern Fortran 扩展也装了,但代码没高亮、fortls 启动失败、Ctrl+Click 跳不到模块定义——这不是环境没配好,是关键依赖链断在了 Python 或路径上。

确认 gfortran 和 python3 都在系统 PATH 里

VSCode 的 Fortran 插件不是独立运行的,它靠外部工具协同工作:gfortran 做语法检查和编译,python3 运行 fortls(语言服务器),两者缺一不可。

  • 终端执行 gfortran --version 和 python3 --version,必须都能输出版本号;任一失败,插件就卡在“Language Server Starting…”
  • Windows 用户尤其注意:MinGW-w64 安装后,gfortran.exe 所在目录(如 C:mingw64in)必须手动加进系统环境变量 PATH,否则 VSCode 终端能识别,GUI 启动的 VSCode 却找不到
  • macOS 用户若用 Homebrew 安装了多个 Python 版本(如 pyenv),确保 python3 指向的是能运行 pip install fortls 的那个版本,别用 /usr/bin/python3(系统自带的常不带 pip)

fortls 必须用 pip install fortls 安装,不能只靠扩展自动安装

Modern Fortran 扩展声称“自动安装 fortls”,但实测在多数系统(尤其是 Linux/macOS 非 root 环境或 Windows WSL)下会静默失败,且不报错。

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载
  • 务必在终端手动执行:pip install fortls;如果提示权限错误,改用 pip install --user fortls
  • 安装后验证:fortls --version 应输出类似 fortls 2.4.1;若报 “command not found”,说明 pip 安装的可执行文件路径没进 PATH(Linux/macOS 查 ~/.local/bin,Windows 查 %APPDATA%PythonPython3xScripts)
  • VSCode 设置中显式指定路径更可靠:"fortran.fortls.path": "/home/you/.local/bin/fortls"(Linux/macOS)或 "fortran.fortls.path": "C:\Users\You\AppData\Roaming\Python\Python311\Scripts\fortls.exe"(Windows)

调试前先配好 launch.json,别指望 Code Runner 编译带调试信息

Code Runner 默认用 gfortran -o $fileNameWithoutExt $fileName 编译,不加 -g,GDB 就看不到变量名和源码行——断点设了也停不住。

  • 在项目根目录建 .vscode/launch.json,用 cppdbg 类型配置 GDB:
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Fortran Debug",
      "type": "cppdbg",
      "request": "launch",
      "program": "${workspaceFolder}/build/main",
      "miDebuggerPath": "gdb",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": true,
      "MIMode": "gdb",
      "setupCommands": [
        { "description": "Enable pretty-printing", "text": "-enable-pretty-printing", "ignoreFailures": true }
      ],
      "preLaunchTask": "build"
    }
  ]
}
  • 再配一个 tasks.json,确保编译命令含 -g -O0(调试优先):
  • {
      "version": "2.0.0",
      "tasks": [
        {
          "label": "build",
          "type": "shell",
          "command": "gfortran",
          "args": [
            "-g", "-O0", "-Wall", "-fcheck=all",
            "-c", "${file}",
            "-o", "${fileDirname}/build/${fileBasenameNoExtension}.o"
          ],
          "group": "build",
          "problemMatcher": ["$gcc"]
        }
      ]
    }
  • Code Runner 适合快速跑单文件脚本,但只要涉及模块调用、数组调试、数值精度追踪,就必须切到正式调试流程
  • 多模块项目里,include 和 use 的路径容易被忽略

    VSCode 的 fortls 默认只扫描当前文件和同级目录,use my_module 报 “cannot find module” 不一定是拼写错,很可能是模块文件不在搜索路径里。

    • 在 .vscode/settings.json 中显式声明模块路径:"fortran.fortls.includePaths": ["${workspaceFolder}/src/modules", "${workspaceFolder}/lib"]
    • 避免用 C 风格的 #include "xxx.h";Fortran 的 include 'file.inc' 是文本替换,路径必须相对于包含它的源文件,不是工作区根目录
    • 模块文件(.f90)必须已编译过(或至少被 fortls 解析过),use 语句才能跳转;刚新建的 my_module.f90 如果没保存、没触发解析,use my_module 会灰显
    Fortran 环境的脆弱点不在编译器本身,而在于 Python、PATH、工作区路径这三者的隐式耦合——任何一个环节的路径偏差,都会导致“功能看似开启,实则半残”。动手前先敲两行命令验证基础链路,比后面花半小时查日志更省时间。

    相关文章

    PHP速学视频免费教程(入门到精通)
    PHP速学视频免费教程(入门到精通)

    PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

    下载

    相关标签:

    vscode

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    相关专题

    更多
    json数据格式
    json数据格式

    JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

    2023.08.07

    2135

    5

    json是什么
    json是什么

    JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

    2023.08.23

    3242

    1

    jquery怎么操作json
    jquery怎么操作json

    操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

    2023.10.13

    1096

    3

    go语言处理json数据方法
    go语言处理json数据方法

    本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

    2025.09.10

    3699

    7

    pip安装使用方法
    pip安装使用方法

    安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

    2023.10.09

    3010

    5

    更新pip版本
    更新pip版本

    更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

    2024.12.20

    6883

    6

    pip设置清华源
    pip设置清华源

    设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。

    2024.12.23

    8502

    11

    python升级pip
    python升级pip

    本专题整合了python升级pip相关教程,阅读下面的文章了解更多详细内容。

    2025.07.23

    4307

    16

    windows查看端口占用情况
    windows查看端口占用情况

    Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

    2023.07.26

    3239

    3

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程