tcpdump mailing list archives
Re: Re: compile failed when using pcap, "undefined reference to `pcap_set_datalink"
From: Jan Pomahač <honza () ekc cz>
Date: Fri, 28 Nov 2003 16:25:40 +0100
Hi Arthur, if you want libpcap library installed into /usr/lib and headers into /usr/include you should run ./configure --prefix=/usr Try ./configure --help for more information. Honza ----- Original Message ----- From: "Arthur Chen" <iamarthur60 () hotmail com> To: <tcpdump-workers () tcpdump org> Sent: Friday, November 28, 2003 2:21 PM Subject: [tcpdump-workers] Re: compile failed when using pcap, "undefined reference to `pcap_set_datalink"
Hi all, now I have found part of the error. 1) my system is redhat 9.0, and I installed pcap with these steps: root# ./configure root# ./make root# ./make install with these steps, in the Makefile's item 'install:', it showed out
these
things to do (a) copy libpcap.a to /usr/local/lib, (b)copy pcap.h, pcap-named.h pcap-bpf.h to /usr/local/include 2) It seems the 'configure' shell is wrong, (a) copy libpcap.a to /usr/local/lib,----this should be copy to /usr/lib (b)copy pcap.h, pcap-named.h pcap-bpf.h to /usr/local/include-----this is wrong, should be copy to /usr/include 3)But after I copied them to the correct place, I still can not compile,
the
error is still be: "undefined reference to 'pcap_set_datalink'" I have noticed that under the directory /usr/lib, there are several shared library files called libpcap.so, libpcap.so.0,libpcap.so.0.6,libpcap.so.0.6.2 , they might be the key problem---because when I make and instal the new PCAP library, I didn't
see
that there were any of these files be createdl: ----anybody help me!From: "Arthur Chen" <iamarthur60 () hotmail com> To: tcpdump-workers () tcpdump org Subject: [tcpdump-workers] small program compile failed when using pcap, "undefined reference to `pcap_set" Date: Thu, 27 Nov 2003 23:00:02 +0000 this small trying program can not compile, It said undefined reference to `pcap_set_datalink', but this function prototype was included in pcap.h
and
was implemented in pcap.c! Any idea? This is the error message: [root@ arthur]# gcc -lpcap -o pcap_test.o pcap_test.c /tmp/ccViVFVU.o(.text+0xbb): In function `main': : undefined reference to `pcap_set_datalink' collect2: ld returned 1 exit status [root@ arthur]# the source file is: #include <stdio.h> #include <pcap.h> //#include <pcap_int.h> extern int pcap_set_datalink(pcap_t *, int); int main() { pcap_t *handle; /* Session handle */ // char *dev; /* The device to sniff on
*/
char errbuf[PCAP_ERRBUF_SIZE]; /* Error string */ struct bpf_program filter; /* The compiled filter */ // char filter_app[] = "port 23"; /* The filter expression */ char filter_app[] = "ether[11]=0xcb || (ether[5]=0xcb)"; bpf_u_int32 mask; /* Our netmask */ bpf_u_int32 net; /* Our IP */ struct pcap_pkthdr header; /* The header that pcap
gives
us */ const u_char *packet; /* The actual packet */ /* Define the device */ // dev = pcap_lookupdev(errbuf); char dev[]="eth0"; int errCode=0; bpf_u_int32 counter=0; printf("the dev=%s\n",dev); /* Find the properties for the device */ pcap_lookupnet(dev, &net, &mask, errbuf); /* Open the session in promiscuous mode */ handle = pcap_open_live(dev, BUFSIZ, 1, 0, errbuf); //printf("The data link is %d",(pcap_datalink(handle))); pcap_set_datalink(handle, DLT_PPP_ETHER); if (errCode) printf("Set data link failed, error code=%d",errCode); else printf("Set data link succeeded, "); /* Compile and apply the filter */ // pcap_compile(handle, &filter, filter_app, 0, net); pcap_compile(handle, &filter, filter_app, 0, net); pcap_setfilter(handle, &filter); /* Grab a packet */ packet = pcap_next(handle, &header); /* Print its length */ printf("Jacked a packet with length of [%d]\n", header.len); /* And close the session */ for (; counter<header.len; counter++) printf("%3x", *(packet+counter)); pcap_close(handle); return(0); } _________________________________________________________________ Help STOP SPAM with the new MSN 8 and get 2 months FREE* http://join.msn.com/?page=features/junkmail - This is the TCPDUMP workers list. It is archived at http://www.tcpdump.org/lists/workers/index.html To unsubscribe use mailto:tcpdump-workers-request () tcpdump org?body=unsubscribe_________________________________________________________________ The new MSN 8: advanced junk mail protection and 2 months FREE* http://join.msn.com/?page=features/junkmail - This is the TCPDUMP workers list. It is archived at http://www.tcpdump.org/lists/workers/index.html To unsubscribe use
mailto:tcpdump-workers-request () tcpdump org?body=unsubscribe
- This is the TCPDUMP workers list. It is archived at http://www.tcpdump.org/lists/workers/index.html To unsubscribe use mailto:tcpdump-workers-request () tcpdump org?body=unsubscribe
Current thread:
- Re: compile failed when using pcap, "undefined reference to `pcap_set_datalink" Arthur Chen (Nov 28)
- Re: Re: compile failed when using pcap, "undefined reference to `pcap_set_datalink" Jan Pomahač (Nov 28)
- Re: Re: compile failed when using pcap, "undefined reference to `pcap_set_datalink" alex medvedev (Nov 28)
- Re: Re: compile failed when using pcap, "undefined reference to `pcap_set_datalink" Guy Harris (Nov 28)