我已经启动了另一个在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):undefined re ference to“getaddrinfo”
C:\ Users \ rahul \ AppData \ Local \ Temp \ ccWqZC7C.o:ak1.c :(。text + 0x1fa):undefined re ference 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:final link 失败:操作无效
collect2.exe:错误:ld返回1退出状态
此错误与MICROSOFT SDK for Windows7有关,意味着我的系统上未添加这些库。 我检查过“Advapi32”不在我的micrsoft SDK下。
请帮助!!!
答案 0 :(得分:0)
您正在使用不使用Microsoft SDK的GCC(可能是MinGW)。 getaddrinfo()
和freeaddrinfo()
在MinGW的ws2tcpip.h
实现中声明,但仅限于WinXP或更高版本的目标。
将-D_WIN32_WINNT=0x0501
添加到编译器命令行以定位XP。