0
我試圖編譯在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;
什麼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