1---->perl_parse(my_perl, NULL, argc, my_argv, NULL);
2----> perl -MExtUtils::Embed -e xsinit -- -o perlxsi.c
cc -c perlxsi.c `perl -MExtUtils::Embed -e ccopts`
Then perlxsi.c document has created.The file is:
--------------------------------
static void xs_init (pTHX);
EXTERN_C void boot_DynaLoader (pTHX_ CV* cv);
EXTERN_C void boot_Socket (pTHX_ CV* cv);
EXTERN_C void
xs_init(pTHX)
{
char *file = __FILE__;
/* DynaLoader is a special case */
newXS("DynaLoader::boot_DynaLoader", boot_DynaLoader, file);
newXS("Socket::bootstrap", boot_Socket, file);
}
------------------------------
That's where the glue code can be inserted to create the initial contact between Perl and linked C/C++ routines. Let's take a look some pieces of perlmain.c to see how Perl does this:
Once you have this code, slap it into the second argument of perl_parse():
3----->perl_parse(my_perl, xs_init, argc, my_argv, NULL);
and the file interp.c must include "perlxsi.c";
4-----> cc -o interp interp.c `perl -MExtUtils::Embed -e ccopts -e ldo
+pts`
interp
I wish it could help somebody.
If you want to connect with me ,this is my email:
shengzongxian@gmail.com
Edited by planetscape - added code tags
|