0

我正在尝试在 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;
4

1 回答 1

1

您正在使用 C 语言,因此您需要使用struct

struct sockaddr_in6 addr;
于 2013-03-09T04:06:14.697 回答