为什么perl2exe会抱怨“Unresolved symbol:Perl_Gthr_key_ptr”?

时间:2010-09-27 09:13:18

标签: perl perl2exe

在Perl中,这个错误是什么意思?

 Unresolved symbol: Perl_Gthr_key_ptr

在HP-UX PA-RISC计算机上使用perl2exe将Perl文件转换为二进制文件时出现此错误。

/usr/lib/dld.sl: Unresolved symbol: Perl_Gthr_key_ptr (code)  from /tmp/p2xtmp-9979/Cwd.sl IOT trap (core dumped)

2 个答案:

答案 0 :(得分:5)

在我的脑海中,它看起来像一个非线程的perl,试图加载为线程perl编译的模块。

编辑:澄清一下,您可以编译Perl,支持线程(线程perl)或不支持线程(非线程perl)。如果模块构建为与线程一起使用并且由perl加载而不支持线程,则通常会产生上述错误。

要检查perl中的线程支持,只需在perl -V的输出中搜索“thread”字符串:

perl -V | grep thread

答案 1 :(得分:1)

正在加载Perl模块,该模块与您的基本Perl安装不是二进制兼容的。在其他情况下,这可能是因为先前已使用CPAN shell安装了模块,然后使用您的OS包管理器升级其下的Perl。

可以解决这种情况
$ cpan -r

将找到所有带有二进制组件的CPAN模块,并根据当前安装的Perl重新编译这些二进制组件。