0

我已经启动了另一个程序在 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): undefined reference to `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 退出状态

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

请帮忙 !!!

4

1 回答 1

0

您正在使用不使用 Microsoft SDK 的 GCC(可能是 MinGW)。 getaddrinfo()并且freeaddrinfo()在 MinGW 的ws2tcpip.h实现中声明,但前提是 WinXP 或更高版本是目标。

添加-D_WIN32_WINNT=0x0501到您的编译器命令行以针对 XP。

于 2013-04-16T05:45:08.933 回答