----- Original Message ----- 
From: "Chang Min Jeon" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Wednesday, August 15, 2007 11:32 PM
Subject: what means "Can't open perl script "s": No such file or directory"


There are some things you have doen that I don't understand.

>
>    #include <EXTERN.h>               /* from the Perl distribution     */
>    #include <perl.h>                 /* from the Perl distribution     */
>
>    static PerlInterpreter *my_perl;  /***    The Perl interpreter    ***/
>
> int _tmain(int argc, char * argv[])

The perlembed documentation has the above line as:

int main(int argc, char **argv, char **env)

Why have you changed it ?

> {
>   PERL_SYS_INIT3(&argc,&argv,&env);
>        my_perl = perl_alloc();
>        perl_construct(my_perl);
>        PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
>        perl_parse(my_perl, NULL, argc, argv, (char **)NULL);
>
>        call_argv("showtime", G_DISCARD | G_NOARGS, NULL);
>        perl_destruct(my_perl);
>        perl_free(my_perl);
>        PERL_SYS_TERM();
>
>    return 0;
> }
>
> and then finish build succesfully.
>

How did you build it ?
First up, you need to run:

perl -MExtUtils::Embed -e ccopts -e ldopts

and save the output.

Then you would build with:

cl showtime.c X

where X is the output of 'perl -MExtUtils::Embed -e ccopts -e ldopts'.

Then you run:

showtime.exe showtime.pl

and it should work.

> showtime.pl have following source code.
>
> sub showtime {
> print time;
> }
>
> \debug>test showtime.pl

What is "test" ?

I don't have Visual C compiler - I use MinGW (gcc). For me, 
'perl -MExtUtils::Embed -e ccopts -e ldopts' produces:

------------------------------
Note (probably harmless): No library found for -lmsvcrt
Note (probably harmless): No library found for -lmoldname
Note (probably harmless): No library found for -lkernel32
Note (probably harmless): No library found for -luser32
Note (probably harmless): No library found for -lgdi32
Note (probably harmless): No library found for -lwinspool
Note (probably harmless): No library found for -lcomdlg32
Note (probably harmless): No library found for -ladvapi32
Note (probably harmless): No library found for -lshell32
Note (probably harmless): No library found for -lole32
Note (probably harmless): No library found for -loleaut32
Note (probably harmless): No library found for -lnetapi32
Note (probably harmless): No library found for -luuid
Note (probably harmless): No library found for -lws2_32
Note (probably harmless): No library found for -lmpr
Note (probably harmless): No library found for -lwinmm
Note (probably harmless): No library found for -lversion
Note (probably harmless): No library found for -lodbc32
Note (probably harmless): No library found for -lodbccp32
  -s -L"c:\perl58_M\lib\CORE" -L"C:\MinGW\lib" 
C:\perl58_M\lib\CORE\libperl58.a

  -s -O2 -DWIN32 -DHAVE_DES_FCRYPT  -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS
-fno-strict-aliasing -DPERL_MSVCRT_READFIX  -I"C:\perl58_M\lib\CORE"
------------------------------

So, I save that as (all on the one line):

------------------------------
 -s -L"c:\perl58_M\lib\CORE" -L"C:\MinGW\lib" 
C:\perl58_M\lib\CORE\libperl58.a  -s -O2 -DWIN32 -DHAVE_DES_FCRYPT  
-DPERL_IMPLICIT_CONTEXT 
 -DPERL_IMPLICIT_SYS -fno-strict-aliasing -DPERL_MSVCRT_READFIX  
-I"C:\perl58_M\lib\CORE"
------------------------------

My showtime.c (slightly modified from the perlembed docs to be more like 
your version) looks like:

------------------------------
#include <EXTERN.h>
#include <perl.h>

static PerlInterpreter *my_perl;

int main(int argc, char **argv, char **env)
{
    PERL_SYS_INIT3(&argc,&argv,&env);
    my_perl = perl_alloc();
    perl_construct(my_perl);

    perl_parse(my_perl, NULL, argc, argv, NULL);
    PL_exit_flags |= PERL_EXIT_DESTRUCT_END;

    call_argv("showtime", G_DISCARD | G_NOARGS, NULL);

    perl_destruct(my_perl);
    perl_free(my_perl);
    PERL_SYS_TERM();
}
------------------------------

And my showtime.pl looks like:

------------------------------
 sub showtime {
     print time;
 }
------------------------------

I run:

-----------------------------
C:\_32\C>gcc -o showtime.exe 
showtime.c  -s -L"c:\perl58_M\lib\CORE" -L"C:\MinGW\lib" 
C:\perl58_M\lib\CORE\libperl58.a  -s -O2 -DWIN32 -DHAVE_DES_FCRYPT  
-DPERL_IMPLICIT_CONTEXT 
 -DPERL_IMPLICIT_SYS -fno-strict-aliasing -DPERL_MSVCRT_READFIX  
-I"C:\perl58_M\lib\CORE"

C:\_32\C>showtime.exe showtime.pl
1187185924
-----------------------------

It should be the same for you, except that your 'perl -MExtUtils::Embed -e 
ccopts -e ldopts' output will be different.

Cheers,
Rob 

_______________________________________________
Perl-Win32-Users mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to