我使用以下选项在自定义路径(/usr/local/perl528)
中从Source编译了Perl 5.28:
config_args='-des -Dprefix=/usr/local/perl528'
然后在perl528中编译B:CC,并使用以下代码创建一个hello.pl
:
#!/usr/local/perl528/bin/perl
use Socket;
print "Hello world";
下一步:
/usr/local/perl528/perlcc -o hello hello.pl
./ hello执行后,我得到以下代码:
panic: corrupt saved stack index -1414812757 at (eval 12) line 26.
panic: corrupt saved stack index -1414812757 at (eval 12) line 26.
panic: corrupt saved stack index -1414812757 at (eval 12) line 26.
panic: corrupt saved stack index -1414812757 at (eval 12) line 26.
panic: corrupt saved stack index -1414812757 at (eval 12) line 26.
panic: corrupt saved stack index -1414812757 at (eval 12) line 26.
panic: corrupt saved stack index -1414812757 at (eval 12) line 26.
panic: corrupt saved stack index -1414812757 at (eval 12) line 26.
panic: corrupt saved stack index -1414812757 at (eval 12) line 26.
panic: corrupt saved stack index -1414812757 at (eval 12) line 26.
panic: corrupt saved stack index -1414812757 at (eval 12) line 26.
./ hello的踪迹:
27738 stat("/usr/local/perl528/lib/5.28.1/x86_64-linux/Socket.pm/auto//.so", 0x9ce0a0) = -1 ENOTDIR (Not a directory)
为什么会出现此错误?
更新:
问题仅在使用模块时发生。
use strict;
很好,不会引起任何错误,但其他人会的。
代码和错误是真实的。 (是的,在线错误 26而我只有6行代码。
谢谢。
答案 0 :(得分:5)
perlcc
工具是一个相当小众的实用程序,不再是核心Perl的一部分。对于与Perl内部结构紧密结合的第三方工具,在使用最新的Perl版本时,您可能会发现一些破损。
查看perlcc Changes文档在这里有帮助:
因此: