I put some files on http://users.edpnet.be/~koenraad.Am Di, den 08.03.2005 schrieb Koenraad Lelong um 21:51:
Marc Santhoff wrote:
Am Mo, den 07.03.2005 schrieb Koenraad Lelong um 22:36:
Hi,
I'm trying to make an interface to a kind of library, but I'm stuck. Any pointers are welcome.
There is a C-header file, but this is common for a number of C-modules. If I translate (h2pas) this file, and use it, the linker tries to find an o-file, which does not exist. Any suggestions how to handle this ?
You've got to compile the C files to .o (gcc -c thesource.c) and then link them into your pascal unit ({$L thesource.o}). This way it should work, I'm using some C stuff like that.
HTH, Marc
Let me explain more : the header file is used in at least five source-files, so compiling gives (at least) five .o files, but none with the name of the header-file.
I was thinking that splitting that header-file in smaller files, each for its own source could do the trick, but I'll have to check this carefully. I had hoped for another suggestion.
Anyway, thanks for the response.
Hm, I don't know, how the translated header looks in pascal, but if it's a complete unit itself you could try to {$L xxx} all resulting .o files in that unit. So any declared function and type should be found ... the other thing would be, if the sources from the 1-wire stuff form a dynamic library, then you simply have to tell the linker to pull this lib (.so) in
fpc -k-l<thelibraryname without the.so-ending> ...
should work and does for me, too. Or it needs an additional "-k-L/the/path/to/1-wire-lib". The only thing in your sources is to put the translated header in the uses clause.
HTH, Marc
ulinuxgnu300.zip is the original file from DallasSemiconductor, with the c-sources.
ownet.h.tar.gz contains the "problem" header file, in C en "raw" h2pas, and two other header files used by temp.c, with their h2pas counterparts, and finally the temp.c-file which I'm trying to implement is FPC, as a testcase.
Finally temp1.pas.tar.gz contains my FPC-versions of the header-files, cleaned up somewhat, so I could successfully compile. Of course this needs more work to make it usefull.
If I compile without an o-path (-Fo), findtype.o and temp10.o are not found and of course ownet.o. If I add a path to the files findtype.o and temp10.o only ownet.o is not found, because it does not exist.
Let me say that I'm new to programming for Linux, and to programming with FPC. I do use Delphi at work, so I know something of Pascal, although I'm not an expert.
Thanks for any help,
Koenraad.
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal