OS X未申报sockaddr_in6的
问题描述:
我试图编译在OS X上使用IPv6的套接字的应用程序,但它失败,出现错误消息:OS X未申报sockaddr_in6的
error: ‘sockaddr_in6’ undeclared (first use in this function)
我看过一个类似的问题上SO,但包括SYS /类型和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中“其中包含缺少”sockaddr_in6“-struct的”netinet6/in6.h“。我错过了什么?
感谢您的帮助!
问题解决了,我错过了 “结构” 标签中的 “sockaddr_in6的” 前:
struct sockaddr_in6 addr;
答
你在C工作,所以你需要使用struct
:
struct sockaddr_in6 addr;
什么OSX的版本?什么版本的编译器? – trojanfoe 2013-02-18 16:45:24
OS X是10.8.2和GCC 4.2.1。 – andreas 2013-02-18 16:48:14
GCC从哪里来?你有没有试过更现代的编译器(即Xcode 4.6附带的clang)? – trojanfoe 2013-02-18 16:50:26