2008年6月5日星期四

Perl : PAR打包报错 Subroutine import redefined at POSIX.pm line xxx

1、用pp将xs.pl打包成xs.exe:
pp -o xs.exe -M PerlIO -M PerlIO::scalar xs.pl
运行xs.exe出错:
Subroutine import redefined at POSIX.pm line 21.
Subroutine croak redefined at POSIX.pm line 29.
Subroutine AUTOLOAD redefined at POSIX.pm line 39.
Subroutine DESTROY redefined at POSIX.pm line 80.
Novel/4Ytyc.pm did not return a true value at script/xs.pl line 15.
BEGIN failed--compilation aborted at script/xs.pl line 15.
2、加-M POSIX重新生成xs1.exe:
pp -o xs1.exe -M PerlIO -M PerlIO::scalar -M POSIX xs.pl
此时xs1.exe可以运行,但是还会报之前的四行Subroutine xxx redefined。

3、注释掉xs.pl里面这两行:
use strict;
use warnings;
再重新生成xs2.exe:
pp -o xs2.exe -M PerlIO -M PerlIO::scalar -M POSIX xs.pl
此时xs2.exe可以正常运行,也不报Subroutine xxx redefined了。
土法炼钢。。。





没有评论:

发表评论