compile problems on Mac OS X (with XCode 1.2 and BIND9)
Ruoming Pang
rpang at CS.Princeton.EDU
Mon Jun 21 13:30:50 PDT 2004
Hi,
I don't if this is the right list to post this message, but in case
someone has the same problem, she can resolve it manually before we fix
in in the configure script. (Vern, I can't find project Bro on either
Mantis or bugzilla.)
I am trying to compile Bro on a Mac OS X and encounter the following
two problems, both related to nb_dns.c:
The first is compile error. It is because the header file
arpa/nameser.h does not define HEADER, which is defined in
arpa/nameser_compat.h. nameser_compat.h will be included by nameser.h
only if BIND_8_COMPAT is defined, but I don't know if we should define
that. After including nameser_compat.h in nb_dns.c, it is able to
compile correctly.
gcc -I. -Ilibedit -O -c nb_dns.c
nb_dns.c: In function `_nb_dns_mkquery':
nb_dns.c:255: error: syntax error before '*' token
nb_dns.c:306: error: `hp' undeclared (first use in this function)
nb_dns.c:306: error: (Each undeclared identifier is reported only once
nb_dns.c:306: error: for each function it appears in.)
nb_dns.c:306: error: `HEADER' undeclared (first use in this function)
nb_dns.c:306: error: parse error before ')' token
nb_dns.c: In function `nb_dns_host_request2':
nb_dns.c:340: error: `T_A' undeclared (first use in this function)
nb_dns.c:345: error: `T_AAAA' undeclared (first use in this function)
nb_dns.c: In function `nb_dns_addr_request2':
nb_dns.c:412: error: `T_PTR' undeclared (first use in this function)
nb_dns.c: In function `nb_dns_activity':
nb_dns.c:468: error: `HFIXEDSZ' undeclared (first use in this function)
nb_dns.c:576: error: `T_A' undeclared (first use in this function)
nb_dns.c:577: error: `T_AAAA' undeclared (first use in this function)
nb_dns.c:605: error: `T_PTR' undeclared (first use in this function)
make: *** [nb_dns.o] Error 1
Next came the link error:
ld: Undefined symbols:
_res_9_dn_expand
_res_9_init
_res_9_mkquery
_res_9_ns_initparse
_res_9_ns_msg_getflag
_res_9_ns_parserr
This is because libresolv is not linked. Looking at the configure
script reveals that it looks for libresolv.a, but only libresolv.dylib
is available. Just adding '-lresolv' to Makefile solves the problem.
Ruoming
More information about the Bro
mailing list