[fpc-pascal] external .so linking in Linux w/2.5.1 rev 13680 (Sep	8 09)
    Jonas Maebe 
    jonas.maebe at elis.ugent.be
       
    Mon Sep 14 00:13:56 CEST 2009
    
    
  
On 13 Sep 2009, at 23:54, Michael Green wrote:
> Even if I were to specify:
>
> ...
> const
> FUSELIBFile = '/lib/libfuse.so.2';
> ...
>
> Then the link.res file tries to use:
> ...
> INPUT(
> -l/lib/libfuse
> )
> ...
>
> So, where's the rest of the library's name? Is it a bug?
No, this is intentional. Under Unix, the convention is that the  
development libraries always have the default base name (i.e.,  
libfuse.so in your case), and these are symbolic links to the library  
against which you want to link. At link time, the linker follows this  
link and encodes the name of the library that this link points to in  
the binary (so it will also work on systems that do not have the  
development libraries installed, and so that it will keep working  
should you one day change you development libraries and thereby  
implicitly change the version of the library to which the symbolic  
link points).
The problem in your case is most likely that you do not have the fuse- 
devel package (or something similar) installed, but only the plain  
fuse package. The latter is all that's needed to run programs that  
make use of the fuse library, but the former is required if you want  
to compile/link programs against it. This is a general principle that  
goes for all packages.
Jonas
    
    
More information about the fpc-pascal
mailing list