在ubuntu linux上编译mDNSResponder时出错

时间:2015-07-14 05:02:28

标签: linux ubuntu compilation makefile

我试图在ubuntu 14.04上编译mDNSResponder-320.10.80。但我得到了以下错误。在fedora上成功编译了相同的内容。请建议我一个可能的解决方案。

../mDNSShared/dnsextd_parser.y: In function ‘yyparse’:
../mDNSShared/dnsextd_parser.y:188:22: error: ‘context’ undeclared (first use in this function)
    ( ( DaemonInfo* ) context )->private_port = mDNSOpaque16fromIntVal( $3 );
                      ^
../mDNSShared/dnsextd_parser.y:188:22: note: each undeclared identifier is reported only once for each function it appears in
../mDNSShared/dnsextd_parser.y: In function ‘ParseConfig’:
../mDNSShared/dnsextd_parser.y:448:2: error: too many arguments to function ‘yyparse’
  err = yyparse( ( void* ) d );
  ^
objects/prod/dnsextd_parser.c:1125:1: note: declared here
 yyparse (void)
 ^
make: *** [objects/prod/dnsextd_parser.y.o] Error 1

溴 Gaurav Singla

1 个答案:

答案 0 :(得分:1)

Ubuntu 14.04升级到bison 3,后者放弃了对YYPARSE_PARAM的支持,该支持已经被弃用了。请参阅以下新闻部分:http://savannah.gnu.org/forum/forum.php?forum_id=7663 这就是为什么dnsextd_parser.y在Ubuntu 14.04上失败的原因。

周围有一些补丁(搜索“补丁dnsextd_parser.y”)会使dnsextd_parser.y与bison 3兼容。我使用的是:http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/net/mDNSResponder/patches/patch-mDNSShared_dnsextd__parser.y