----- 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