[英]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.