在编译为二进制文件时在perl 5.28上进行perlcc编译时出错

Navid Zarepak

(/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; 很好,不会造成任何错误,但其他人会。

  • 代码和错误是真实的。(是的,但是我只有6行代码,但是在第26行出现错误。

谢谢。

阿蒙

perlcc工具是一个相当利基的实用程序,不再是核心Perl的一部分。对于与Perl内部结构紧密结合的第三方工具,在使用最新的Perl版本时,您可能会发现一些破损。

查看perlcc更改文档可以帮助您:

  • 版本1.55(最新的稳定版本)仅增加了对perl 5.24的支持
  • 开发版本1.55_08提到了perl 5.27.3,perl 5.28的开发版本
  • Perl的编译器GitHub的项目提到的5.28测试

因此:

  • 考虑安装Perlcc的开发版本,
  • 甚至直接从GitHub安装。
  • 或者考虑使用较旧的Perl版本。
  • 或者考虑使用cperl,这是perlcc维护者Reini Urban的perl分支。(当然,使用叉子可能会破坏其他东西……)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将ffmpeg编译为独立的二进制文件

将仅在测试文件中引用的测试代码编译为二进制文件吗?

验证时出现Xcode错误-“您的二进制文件未针对iPhone 5优化”

提交时“您的二进制文件未针对iPhone 5优化”(ITMS-90096)

验证时出现Xcode错误-“您的二进制文件未针对iPhone 5优化”

dart支持编译为二进制代码吗?

将多个程序编译为一个二进制文件以节省空间

在Mac上将Python3编译为二进制可执行文件

如何测试Linux二进制文件是否被编译为位置无关代码?

使用Bazel将二进制文件编译为多个版本的.NET Framework

是否可以将R脚本编译为二进制文件?

Go:使用 PIE 编译为静态二进制文件

在编译成Rust二进制文件时,如何编译命令行中提供的字符串?

有什么办法可以将Google protobuf二进制文件(.pb文件)反编译为.proto文件

有没有一种方法可以在编译时将二进制文件作为C中的const变量加载

如何编写Shell脚本,以便在编译C ++程序时将二进制文件放入二进制目录

您的CPU支持该TensorFlow二进制文件未编译为使用的指令:AVX2 FMA

“您的 CPU 支持此 TensorFlow 二进制文件未编译为使用的指令:AVX2”错误

如何将所有依赖项和共享库编译为一个二进制文件

为什么unique_ptr实例化编译为比原始指针更大的二进制文件?

将包含所有依赖项的 C++ 项目编译为单个二进制文件

在 64 位机器上编译 32 位二进制文件时遇到问题

是否可以保存安装软件包时pip编译的二进制文件?

执行Elm-Test时无法编译下载的二进制文件

编译二进制文件时,Android会重建静态库

在启动时启动已编译二进制文件的最简单方法

gcc编译的二进制文件给出“无法执行二进制文件”

从命令行(macOS)进行编译时,将SDK版本写入二进制文件

相同的Java源代码可编译为二进制不同的类