Eddie被注册了 2024-03-07 20:05 采纳率: 0%
浏览 8

VScode运行基本代码失败

源代码
#include <stdio.h>

int main()
{
    printf("hello CS\n");
}

报错
Running] cd "c:\TDM-GCC-64" && gcc hello.c -o hello && "c:\TDM-GCC-64"hello
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a(lib64_libmingw32_a-crt0_c.o): In function main': C:/crossdev/src/mingw-w64-v4-git/mingw-w64-crt/crt/crt0_c.c:18: undefined reference to WinMain'
collect2.exe: error: ld returned 1 exit status

[Done] exited with code=1 in 0.279 seconds
为啥嘞

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-03-07 20:05
    关注

    引自免费微信小程序:皆我百晓生

    问题分析:

    你遇到的问题是,在使用VScode编译并运行C语言程序时,链接器报了一个“undefined reference to 'WinMain'”的错误。这个错误表明,编译器在试图链接一个Windows应用程序的入口点(即WinMain函数)时没有找到它。

    在Windows平台上,当你创建的是控制台程序(如你现在写的main函数的程序),编译器默认应该查找的是main函数作为程序的入口点。而当编译器期望找到的是GUI程序的入口点WinMain函数时,就会出现上述错误,这意味着当前编译器配置可能被误设置为了编译GUI程序。

    解决方案:

    1. 检查你的任务配置文件(tasks.json)。确保你在编译C源码时正确指定了编译器选项,以生成控制台程序而非GUI程序。对于GCC,通常需要添加 -mconsole-Wl,--subsystem-console 参数来指定为控制台应用。

      示例 tasks.json 配置:

      {
        "version": "2.0.0",
        "tasks": [
          {
            "type": "shell",
            "label": "gcc build active file",
            "command": "gcc",
            "args": [
              "-g",
              "-Wall",
              "-mconsole", // 添加此行来指定为控制台应用
              "${file}",
              "-o",
              "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
              "cwd": "${workspaceFolder}"
            },
            "problemMatcher": ["$gcc"],
            "group": {
              "kind": "build",
              "isDefault": true
            }
          }
        ]
      }
      
    2. 如果你的程序实际上是一个Windows GUI程序,你需要提供一个符合Win32 API规范的WinMain函数,并修改项目设置以适应GUI应用的构建。

    总之,请检查VScode中的编译配置,确保与你要编译的应用类型(控制台或GUI)匹配即可解决这个问题。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月7日

悬赏问题

  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
  • ¥15 376.1电表主站通信协议下发指令全被否认问题
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥15 复杂网络,变滞后传递熵,FDA
  • ¥20 csv格式数据集预处理及模型选择
  • ¥15 部分网页页面无法显示!
  • ¥15 怎样解决power bi 中设置管理聚合,详细信息表和详细信息列显示灰色,而不能选择相应的内容呢?
  • ¥15 QTOF MSE数据分析