C语言中的Winsock程序不工作

w7t8yxp5  于 2023-01-25  发布在  其他
关注(0)|答案(2)|浏览(124)

我已经启动了另一个程序在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-文件配置文件32-文件配置文件2_32-文件配置文件32-文件配置文件
C:\用户\rahul\应用程序数据\本地\临时\ccWqZC7C.o:ak1.c:(. text +0x109):未定义对"getaddrinfo"的引用
C:\用户\rahul\应用程序数据\本地\临时\ccWqZC7C.o:ak1.c:(. text +0x1fa):未定义对"freeaddrinfo"的引用
c:/明国文/bin/../库/gcc/明国文32/4.7.2/../../../../明国文32/bin/ld.可执行文件:C:\用户\权限\应用数据\本地\临时\ccWqZC7C. o:段'. eh_frame'中的错误reloc地址0x20
c:/明国文/bin/../库/gcc/明国文32/4.7.2/../../../../明国文32/bin/ld.可执行文件:最终链接失败:无效操作
collect2.exe:错误:ld返回1退出状态
此错误是否与MICROSOFT SDK for Windows7有关,意味着这些库没有添加到我的系统中。我检查了"Advapi32"不在我的micrsoft SDK下。
救命啊!!!

jogvjijk

jogvjijk1#

您正在使用GCC(大概是MinGW),它不使用Microsoft的SDK。getaddrinfo()freeaddrinfo()在MinGW的ws2tcpip.h实现中声明,但只有当WinXP或更高版本是目标时才声明。
-D_WIN32_WINNT=0x0501添加到编译器命令行以针对XP。

46scxncf

46scxncf2#

解决方法是在命令末尾加上 "-lws2_32",用gcc编译;-)

相关问题