I'm trying to track down a bug, which I think is in HPLIP, and I have this test program, which compiles and runs fine on my gentoo box:
#include <stdio.h> #include <sane/sane.h> int main (int argc, char **argv) { SANE_Status status; SANE_Int version_code; SANE_Auth_Callback authorize; SANE_Handle h; const SANE_Device **device_list; int i = atoi(argv[2]); printf("initialising sane... "); status = sane_init(&version_code, authorize); printf("%s\n", sane_strstatus (status)); printf("opening %s, %d times\n", argv[1], i); while (i-- > 0) { printf("opening %s... ", argv[1]); status = sane_open(argv[1], &h); printf("%s\n", sane_strstatus (status)); sane_close(h); } sane_exit; } However, on my Ubuntu Precise box, I'm getting: $ gcc -lsane -L/usr/lib/i386-linux-gnu/ -I/usr/include/ hplip_segfault.c -o hplip_segfault /tmp/cciw9jNN.o: In function `main': hplip_segfault.c:(.text+0x3a): undefined reference to `sane_init' hplip_segfault.c:(.text+0x4a): undefined reference to `sane_strstatus' hplip_segfault.c:(.text+0xa6): undefined reference to `sane_open' hplip_segfault.c:(.text+0xb6): undefined reference to `sane_strstatus' hplip_segfault.c:(.text+0xca): undefined reference to `sane_close' collect2: ld returned 1 exit status where the contents of /usr/lib/i386-linux-gnu/pkgconfig/sane-backends.pc is prefix=/usr exec_prefix=${prefix} libdir=${prefix}/lib/i386-linux-gnu includedir=${prefix}/include ldflags=-Wl,-Bsymbolic-functions libs= Name: SANE Backends Description: Backends for SANE, the universal scanner interface Version: 1.0.22 Requires: Libs: -L${libdir} -lsane Libs.private: ${ldflags} ${libs} Cflags: -I${includedir} Has anyone any insight on how to get this linking properly? Regards Jeff