【问题标题】:Compiling mDNSResponder for Linux?为 Linux 编译 mDNSResponder?
【发布时间】:2011-09-28 10:27:08
【问题描述】:

我一直在尝试编译 Apple 为 Linux 开发的开源 Bonjour 框架。我遇到的问题是,当我使用选项 os=linux 运行 make 时,出现以下编译错误:

struct sockaddr 没有名为“sa_len”的成员

我检查了 struct sockddr,它确实没有名为 sa_len 的成员...所以我很困惑为什么框架认为它应该这样做!

谁能给我一些关于我应该如何为 Linux 编译 mDNSResponder 的建议?非常感谢。

【问题讨论】:

    标签: linux compilation bonjour


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-17
        • 2018-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-04
        相关资源
        最近更新 更多