我注意到 arpa/inet.h
lib 不适用于 Windows 平台。另请参阅 winsock2.h
实现了一个模拟函数 InetPton
来转换 IPv4 或 IPv6 Internet 网络地址。然后我尝试构建一些指令,例如:
#include <winsock2.h>
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
struct sockaddr_in sa;
InetPton(AF_INET, "10.20.30.40", &(sa.sin_addr));
}
并得到以下编译错误:
undefined reference to `InetPton'
要在 Windows (10) 上使用此功能,我需要做什么/包括什么?
最佳答案
可能有点晚了,但我最近遇到了这个问题,并找到了答案,我希望对任何偶然发现它的人都有用。
首先,您必须在链接编辑器窗口中包含 ws2_32.lib 库(假设您使用的是 Visual Studio)。
然后,您必须在进行包含之前定义 _WIN32_WINNT (更多详细信息 here )。
对于 Windows 10,它可能看起来像这样。
#define _WIN32_WINNT _WIN32_WINNT_WIN10
#include <winsock2.h>
#include <ws2tcpip.h>
查看
希望这有帮助!
关于c - 如何在Windows 10中正确使用inet_pton rotine?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43287936/