首页 > 解决方案 > gfortran 在 Visual Studio Code 中链接和编译子程序

问题描述

我想使用 Visual Studio 代码编译和运行 fortran 子程序。

当我尝试调试代码时,我收到一条错误消息,指出“预启动任务 'gfortran' 以退出代码 1 终止”,并带有以下控制台消息:

c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../libmingw32.a(main.o):(.text.startup+0xa0): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status
The terminal process "C:\MinGW\bin\gfortran.exe '-g', 'D:\......\params.f95', '-o', 'D:\.......\params.exe'" terminated with exit code: 1.

当我单击“显示错误”时,它说“到目前为止,在工作空间中没有检测到问题”

我对该文件夹的 json 文件配置如下: Launch.json

    {
        "version": "2.0.0",
        "configurations": [
            {
                "name": "Fortran Launch (GDB)",
                "type": "cppdbg",
                "request": "launch",
                "targetArchitecture": "x86",
                "program": "${workspaceRoot}\\${fileBasenameNoExtension}.exe",
                "miDebuggerPath": "gdb.exe",
                "args": [],
                "stopAtEntry": false,
                "cwd": "${workspaceRoot}",
                "externalConsole": true,
                "preLaunchTask": "gfortran"
            }
        ]
       }

任务.json

{
    "version": "2.0.0",
    "command": "gfortran",   

    "args": [
        "-g",
        "${file}",
        "-o",
        "${workspaceRoot}\\${fileBasenameNoExtension}.exe"
    ]
   }

我尝试了许多从网上找到的修复程序,例如更改默认设置以在运行前保存文件、重新安装 gfortran 等,但无济于事。当我尝试从命令提示符编译时,我没有任何错误,但是当我使用标志 -g 时,我有关于“未定义对 WinMain@16的引用”的相同错误。此外,使用设置运行单个 fortran 代码(没有子程序)也没有问题。

我有一个 Windows-32 架构,我使用 MinGW 安装 gfortran。我已将系统环境变量“路径”设置为包含此文件夹。

我希望问题很清楚,请帮助我。

标签: jsonvisual-studio-codefortranmingwgfortran

解决方案


推荐阅读