c - OS X sockaddr_in6 未声明

标签 c macos ipv6

我尝试在 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/

相关文章:

java - 在 Mac OS X 上使用 JDK 1.6 运行 Ant

sockets - 在 IPv6 套接字上使用 `sendto()` 发送到 IPv4 地址

对如何添加到另一个结构中的链表结构感到困惑

c - 编译时出错: "fatal error: cmocka.h: No such file or directory compilation terminated."

c - 有什么方法可以更改用 c 中的 const 限定符定义的变量中的值吗?

c - 在linux系统上顺序打开和读取多个文件

c++ - OS X 上 Carbon OpenGL 应用程序的字体

macos - 如何在 Mac 应用程序的 Xcode 上启动电子邮件

c++ - 程序托管 - 任一方向的隧道/NAT IPv4/IPv6

python - ipaddress模块​​和IPv6反向指针