You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows11下gfortran运行Fortran程序报Undefined Reference to WinMain错误求助

Fortran编译链接错误:undefined reference to WinMain 解决办法

问题原因

这个错误是因为VSCode的Code Runner扩展默认调用了C语言编译器gcc来处理Fortran文件,而非Fortran专用编译器gfortran。gcc在Windows环境下默认寻找WinMain(GUI程序入口)或main(控制台程序入口)函数,但Fortran程序的入口是通过program语句定义的程序单元,因此链接阶段找不到对应入口,触发报错。

解决方法

方法一:修改Code Runner配置,指定gfortran编译

  1. 打开VSCode设置:按下快捷键Ctrl+,,搜索code-runner.executorMap。
  2. 找到Fortran对应的配置项,将默认命令替换为:
    gfortran -o $fileNameWithoutExt $fileName && $fileNameWithoutExt
    
  3. 保存设置后,重新运行Fortran程序即可。

方法二:使用Modern Fortran扩展的构建任务(更推荐,适合项目管理)

  1. 打开命令面板:按下Ctrl+Shift+P,输入Fortran: Create New Project,跟随向导完成项目创建(已有文件也可手动配置任务)。
  2. 手动创建编译任务(tasks.json):
    • 按下Ctrl+Shift+B,选择「创建tasks.json文件」,再选「Others」。
    • 替换文件内容为:
      {
          "version": "2.0.0",
          "tasks": [
              {
                  "label": "Compile Fortran",
                  "type": "shell",
                  "command": "gfortran",
                  "args": [
                      "-o",
                      "${fileBasenameNoExtension}",
                      "${file}"
                  ],
                  "group": {
                      "kind": "build",
                      "isDefault": true
                  },
                  "problemMatcher": ["$gcc"],
                  "detail": "Compile Fortran source file with gfortran"
              }
          ]
      }
      
    • 保存后按下Ctrl+Shift+B编译文件,再在终端运行生成的exe程序。

额外检查:确认gfortran环境变量配置

打开命令提示符(cmd),输入gfortran --version,若能显示版本号则环境变量正常;若提示“找不到命令”,需将TDM-GCC的bin目录(比如C:\TDM-GCC-64\bin)添加到系统PATH环境变量,然后重启VSCode。

内容的提问来源于stack exchange,提问作者JoeTheGreatest616

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 14:02:10