View Single Post
Old 29 October 2021, 19:09   #11
phx
Natteravn
 
phx's Avatar
 
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,500
Quote:
Originally Posted by Sim085 View Post
From what I understand the first command creates the linker library from the fd file. The second command is creating the header file (under the proto directory of vbcc), this is what I would include in my source files.
Correct.

Quote:
However I do not understand what the third command is doing.
It generates assembler inlines to call the library functions directly, without going over the stub routines from the linker library. vbcc generally puts these inline-headers into the
inline
directory with the name
libname_protos.h
.

It is automatically included and used as soon as you include
<proto/libname.h>
. If you want to use the stubs, you would include
<clib/libname_protos.h>
instead.

Quote:
When I open the header file generated I can see there is the following entry but I cannot identify any clib directory under my vbcc installation.
The clib directory is in the official NDK. All third party libraries are expected to provide their function proto types in a clib header file and follow the general naming of
clib/libname_protos.h
.

This doesn't seem to be the case with the RegExp library you found - which is also somewhat old...

Looking into the RegExpLib archive I guess that
regexp.h
is meant as proto/clib header file - it even includes pragmas for SAS/C inline calls.

You can try copying it into your clib directory and rename it to
RegExp_protos.h
. Then use it with the clib option from the "special 70" fd2pragma call. fd2pragma needs these proto types to generate valid inline functions with matching types.

EDIT: If you don't care about optimized library calls, just delete the
#include <inline/RegExp_protos.h>
from your proto-header and you're done.

Last edited by phx; 29 October 2021 at 19:15.
phx is offline  
 
Page generated in 0.04203 seconds with 11 queries