[fpc-pascal]Linking with C
jcoppens at usa.net
Mon Sep 30 03:24:48 CEST 2002
On Sun, 29 Sep 2002 11:16:54 +0200 (CEST)
Michael.VanCanneyt at Wisa.be wrote:
> On Sun, 29 Sep 2002, John Coppens wrote:
> > Hi all.
> > I was trying to link with a C library, and everything went well till one
> > function popped up that didn't wan't to work. Till I investigated the
> > source library code, and found that it was in fact a macro that referenced
> > fields from a struct.
> > The only solution I found, was to write a few C functions that call the
> > macro, then I link to that C proggie. Hardly elegant... Is there a another
> > solution to this?
> No. When we translate C library header files, we rewrite the macros always
> as pascal functions. The h2pas conversion tool takes a shot at this, but
> the translation always needs to be hand-tweaked.
I wanted to avoid changing the original header files, because this seemed
problematic: if new versions of the header files appear, it would be necessary
to reapply the h2pas or similar step, wouldn't it?
Writing a proper C interface avoids this problem, but means it's necessary
to link with an extra .o file. I wonder if it would be possible to combine
the C-generated .o and the Pascal generated .o into one lib.
More information about the fpc-pascal