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编译
- 打开VSCode设置:按下快捷键
Ctrl+,,搜索code-runner.executorMap。 - 找到Fortran对应的配置项,将默认命令替换为:
gfortran -o $fileNameWithoutExt $fileName && $fileNameWithoutExt - 保存设置后,重新运行Fortran程序即可。
方法二:使用Modern Fortran扩展的构建任务(更推荐,适合项目管理)
- 打开命令面板:按下
Ctrl+Shift+P,输入Fortran: Create New Project,跟随向导完成项目创建(已有文件也可手动配置任务)。 - 手动创建编译任务(
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
相关产品推荐
相关产品推荐

