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;
}
対応するファイルを検索したところ、「sockaddr_in6」構造体が欠落している「netinet6/in6.h」を含む「/usr/include/netinet/in.h」が見つかりました。私は何が欠けていますか?
ご協力いただきありがとうございます!
問題は解決しました。「sockaddr_in6」の前に「struct」タグがありませんでした。
struct sockaddr_in6 addr;