in reply to Re^2: perl in C >>> "dynamic loading not available in this perl."
in thread perl in C >>> "dynamic loading not available in this perl."

I got it.

Last friday,I passed my program.Now I will share my solution.

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

Replies are listed 'Best First'.
Re^4: perl in C >>> "dynamic loading not available in this perl."
by mmathew (Initiate) on Jun 06, 2008 at 09:13 UTC
    Hello,
    Just wanted to say thanks.Your solution helped me.
    Thanks again for sharing it :)
    Regards,
    MM.
Re^4: perl in C >>> "dynamic loading not available in this perl."
by Anonymous Monk on Jan 16, 2006 at 02:56 UTC
    perldoc perlembed