我试图在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
答案 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