2011-09-28 153 views
0

我一直在努力编译Apple for Linux开发的开源Bonjour框架。我的问题是,使与该选项,当我运行os=linux我得到以下编译错误:编译mDNSResponder for Linux?

struct sockaddr has no member named 'sa_len'

我检查的结构sockddr,它确实没有sa_len命名成员...所以我混淆为什么框架认为它应该这样做!

任何人都可以请给我一些建议,我应该如何编译Linux的mDNSResponder?非常感谢。

回答

0

查看mDNSUNP.h,可以看到如果sa_len不存在(例如在Linux上),应该定义一个宏NOT_HAVE_SA_LEN。如果未在您的案例中定义,请尝试将-DNOT_HAVE_SA_LEN添加到您的编辑标志。

0

sockaddr的Linux实现没有sa_len作为成员,但是FreeBSD版本没有。 Apple的实施基于FreeBSD版本(parts of OS X pull from FreeBSD and NetBSD),因此您收到该错误的原因。按照之前的建议,您可以使用#ifdef来解决它或添加编译标志。