繁体   English   中英

c 语言的 Winsock 程序无法运行

[英]Winsock Program in c language is not working

我已经启动了另一个程序在 Windows7 上以 C 语言运行 Winsock。

我在 msdn 上找到了这个帮助: http://msdn.microsoft.com/en-us/library/windows/desktop/ms737591%28v=vs.85%29.aspx

该程序不工作并显示这些错误:

$ gcc ak1.c -o ak1.exe -lwsock32 -lws2_32 -lAdvapi32 -lmswsock

C:\Users\rahul\AppData\Local\Temp\ccWqZC7C.o:ak1.c:(.text+0x109): 未定义对“getaddrinfo”的引用

C:\Users\rahul\AppData\Local\Temp\ccWqZC7C.o:ak1.c:(.text+0x1fa): 未定义对“freeaddrinfo”的引用

c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: C:\Users\a mit\AppData\ Local\Temp\ccWqZC7C.o:“.eh_frame”部分中的错误重定位地址 0x20

c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe:最终链接失败:无效操作

collect2.exe:错误:ld 返回 1 退出状态

此错误是否与 Windows7 的 MICROSOFT SDK 相关,意味着这些库未添加到我的系统中。 我检查过“Advapi32”不在我的 micrsoft SDK 下。

请帮忙 !!!

您正在使用不使用Microsoft SDK的GCC(大概是MinGW)。 在MinGW的ws2tcpip.h实现中声明了getaddrinfo()freeaddrinfo() ,但ws2tcpip.h是必须以WinXP或更高版本为目标。

-D_WIN32_WINNT=0x0501添加到编译器命令行中以XP为目标。

解决方案是在命令末尾添加“-lws2_32”以使用 gcc 进行编译;-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM