我正在尝试在OS X上编译使用IPv6套接字的应用程序,但它失败并显示错误消息:
error: ‘sockaddr_in6’ undeclared (first use in this function)
我在SO上读过类似的问题,但包括sys / types和netinet / in都没有解决问题。我只是用“gcc -o foo foo.c”编译,我需要像“-lnetinet”这样的东西吗? (我尝试过但是-lnetinet也没有帮助)
简单示例:
#include <sys/types.h>
#include <netinet/in.h>
int main(int argc, char **argv) {
sockaddr_in6 addr;
return 0;
}
我搜索了相应的文件,我有“/usr/include/netinet/in.h”,其中包含“netinet6 / in6.h”,其中缺少“sockaddr_in6”-struct。我错过了什么?
感谢您的帮助!
问题解决了,我在“sockaddr_in6”前面缺少一个“struct”标签:
struct sockaddr_in6 addr;
答案 0 :(得分:1)
你在C中工作,所以你需要使用struct
:
struct sockaddr_in6 addr;