我尝试在 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”结构。我错过了什么?
感谢您的帮助!
问题已解决,我在“sockaddr_in6”前面缺少“struct”标签:
struct sockaddr_in6 addr;
最佳答案
您使用的是 C 语言,因此需要使用 struct
:
struct sockaddr_in6 addr;
关于c - OS X sockaddr_in6 未声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14941123/