我一直在努力编译Apple for Linux开发的开源Bonjour框架。我的问题是,使与该选项,当我运行os=linux
我得到以下编译错误:编译mDNSResponder for Linux?
struct sockaddr has no member named 'sa_len'
我检查的结构sockddr,它确实没有sa_len命名成员...所以我混淆为什么框架认为它应该这样做!
任何人都可以请给我一些建议,我应该如何编译Linux的mDNSResponder?非常感谢。
我一直在努力编译Apple for Linux开发的开源Bonjour框架。我的问题是,使与该选项,当我运行os=linux
我得到以下编译错误:编译mDNSResponder for Linux?
struct sockaddr has no member named 'sa_len'
我检查的结构sockddr,它确实没有sa_len命名成员...所以我混淆为什么框架认为它应该这样做!
任何人都可以请给我一些建议,我应该如何编译Linux的mDNSResponder?非常感谢。
查看mDNSUNP.h,可以看到如果sa_len
不存在(例如在Linux上),应该定义一个宏NOT_HAVE_SA_LEN
。如果未在您的案例中定义,请尝试将-DNOT_HAVE_SA_LEN
添加到您的编辑标志。
sockaddr的Linux实现没有sa_len作为成员,但是FreeBSD版本没有。 Apple的实施基于FreeBSD版本(parts of OS X pull from FreeBSD and NetBSD),因此您收到该错误的原因。按照之前的建议,您可以使用#ifdef
来解决它或添加编译标志。