Cross compiling simple pcap example

Kent Kvarfordt kent.kvarfordt@gmail.com
Mon Jun 20 14:07:00 GMT 2011


List,

I am trying to cross compile a simple pcap example (see below) on a
64-bit Ubuntu 11.4 installation targeting a 32-bit Ubuntu 11.4
installation.  When I set the -m32 option, the example compiles fine,
but fails to link with the following error.

/usr/bin/ld skipping incompatible /usr/lib/libpcap.so when searching for -lpcap

This makes sense given the /usr/lib/libpcap.so is the 64-bit pcap
library.  I tried installing the 32-bit pcap package along side the
64-bit package, but the installation failed saying the
packages/libraries could not co-exist.

Is it possible to build the example so it is truly dynamically linked
at run-time on the 32-bit installation?  If so, what are the correct
options?

Thanks for any input.

-- Kent

==== Example ===

#include <stdio.h>
#include <pcap.h>

int main(int argc, char *argv[])
{
	char *dev, errbuf[PCAP_ERRBUF_SIZE];
	dev = pcap_lookupdev(errbuf);

	if (dev == NULL) {
		fprintf(stderr, "Couldn't find default device: %s\n", errbuf);

		return(2);
	}
	printf("Device: %s\n", dev);
	return(0);
}



More information about the Gcc-help mailing list