首页 文章

用c语言的Winsock程序不起作用

提问于
浏览
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):对“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下 .

请帮忙 !!!

1 回答

  • 0

    您're using GCC (presumably MinGW) which doesn' t使用Microsoft的SDK . getaddrinfo()freeaddrinfo() 在MinGW的 ws2tcpip.h 实现中声明,但仅限于WinXP或更高版本的目标 .

    -D_WIN32_WINNT=0x0501 添加到编译器命令行以定位XP .

相关问题