[libhid-discuss] Issue with fedora 6

Charles Lepple clepple at ghz.cc
Fri Sep 21 07:33:41 UTC 2007


On Sep 20, 2007, at 3:49 PM, ankita prasad wrote:

> Do I need to build libhid on a machine for it to work on that  
> machine. Will
> it not work if I just copy the libhid.so, libusb.so and their  
> corresponding
> .a files and the executable on to a machine and run the executable  
> from
> there?

Run "ldd test_libhid" (replacing test_libhid with the name of your  
program) on the target machine to be sure that the correct versions  
of libusb.so and libhid.so are found by the dynamic linker.

If the .so files are truly .so files (that is, you ran 'make install'  
to generate them, as opposed to grabbing libhid.so from the build  
directory), then you should not need the .a files (or any other files  
except the .so files listed by ldd, and the executable itself) to run  
the program on another machine.

> After my earlier bug I built the exact thing on fedora 6 and it  
> works fine
> but when I copied the executable and the .so on to another machine  
> which is
> fedora 6, I again get the broken pipe error.

As Peter mentioned, it seems like there is some difference between  
the two systems. I would expect a linker error rather than the broken  
pipe error, but I haven't tried this myself. There may also be kernel  
version issues - it is hard to tell. Generally, if a Linux  
distribution packages a library, you should use their package (e.g.  
libusb).

Debian policy seems to be a little stricter in terms of keeping  
backwards binary compatibility between minor revisions of shared  
libraries, but if you compiled something against a library included  
in Debian 4.0, I would not expect it to run unmodified on 3.1.

-- 
Charles Lepple






More information about the libhid-discuss mailing list