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

Windows下GCC编译含WinSock2的C代码出现未定义引用错误

报错原因

#pragma comment(lib, "ws2_32.lib") 是微软MSVC编译器专属的自动链接指令,MinGW/GCC编译器不支持该语法,因此代码中添加的该配置不会生效,编译阶段没有链接WinSock对应的依赖库,就会抛出这些WinSock API未定义引用的报错。

解决方案

在GCC编译指令的末尾追加WinSock库的链接参数 -lws2_32 即可。需要注意GCC的链接参数必须放在源文件/目标文件的后方,否则会出现链接失效的问题。

假设你的源文件名为 socket_test.c,正确的编译命令示例如下:

gcc socket_test.c -o socket_test.exe -lws2_32
额外注意事项
  • 如果后续出现WinSock类型、宏重定义的报错,检查头文件引入顺序,必须保证 WinSock2.h 的引入在 Windows.h 之前,你当前的头文件顺序符合要求无需修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 13:57:02