win上vscode出现undefined reference to `__imp_WSACleanup'

发布时间 2023-12-06 11:23:38作者: AndreaDO

示例代码

#include <iostream>
// 推荐加上宏定义
#define WIN32_LEAN_AND_MEAN
#include <winsock2.h>
#include <Windows.h>
using namespace std;
int main()
{
  WORD ver = MAKEWORD(2, 2);
  WSADATA dat;
  WSAStartup(ver, &dat);
  WSACleanup();
  return 0;
}

这里代码报错了,无法编译通过

解决方法第一步添加指令

#pragma comment(lib, "ws2_32")

添加一行这个代码

这个时候编译但我还是出了问题

第二步去tasks.json文件中添加指令

添加这行代码

我的json文件

{
  "tasks": [
    {
      "type": "cppbuild",
      "label": "C/C++: g++.exe 生成活动文件",
      "command": "C:\\Program Files\\mingw64\\bin\\g++.exe",
      "args": [
        "-fdiagnostics-color=always",
        "-g",
        "${file}",
        "-o",
        "${fileDirname}\\${fileBasenameNoExtension}.exe",
        "-lwsock32"
      ],
      "options": {
        "cwd": "${fileDirname}"
      },
      "problemMatcher": [
        "$gcc"
      ],
      "group": {
        "kind": "build",
        "isDefault": true
      },
      "detail": "调试器生成的任务。"
    }
  ],
  "version": "2.0.0"
}

再次运行代码

没有出错了