[fpc-pascal] external .so linking in Linux w/2.5.1 rev 13680 (Sep 8 09)
Michael Green
myatus at googlemail.com
Sun Sep 13 23:54:52 CEST 2009
Hi All!
I've noticed that someone made a headstart with a unit to bind with FUSE
in FreePascal at http://bugs.freepascal.org/view.php?id=12218. I've
taken the last two entries (FUSE-2008-12-20-3.PP and
Test-2008-12-20-3.PP) and modified the test file on line 88 to use the
move() function instead of memcpy() -- and so eliminating the need for
the "libc" unit. It compiles, but it fails at linking with this error:
...
Linking Project1
/usr/bin/ld: cannot find -lfuse
...
Okay, strange, nowhere do I see "fuse" specified. But upon closer
inspection, it turns out something this gets lost in translation. For
example, in the FUSE-2008-12-20-3.PP file, it contains:
...
const
FUSELIBFile = 'libfuse.so.2';
function fuse_main_real(aARGC : Integer; aARGV: PPChar; aOperations :
TOperationsP; aOperationsSize : size_t; aUserData : Pointer) : Integer;
cdecl; external FUSELIBFile;
...
But in the link.res file I see:
...
INPUT(
-lfuse
)
...
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? Did I make a
mistake on my end? ( And yes, that library is actually available on my
system )
As noted in the subject, I'm using FPC 2.5.1 SVN rev 13680 from
September 8th, x86_64 Linux (ppcrossx64). Kernel: 2.6.28-15-generic
#49-Ubuntu SMP Tue Aug 18 19:25:34 UTC 2009 x86_64 GNU/Linux
-- MG
More information about the fpc-pascal
mailing list