2015-02-24 48 views
4

即使安装模块后,为什么会出现“无法找到模块的可加载对象”?

任何人都可以指出我可能导致Perl找不到安装的模块吗?

$ ll /usr/share/perl5/Unix/Processors.pm 
-rw-r--r-- 1 root root 3.2K Sep 11 12:39 /usr/share/perl5/Unix/Processors.pm 

好吧,

$ perldoc -l Unix::Processors 
/usr/share/perl5/Unix/Processors.pm 

好,但

$ perl -MUnix::Processors -e1 
Can't locate loadable object for module Unix::Processors in @INC (@INC contains: /usr/lib/cegma /usr/share/mocat/src /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at -e line 0 
Compilation failed in require. 
BEGIN failed--compilation aborted. 

固定:我已经把编译Processors.so旁边.pm时,它应该是在auto目录。

+2

看起来安装不完整。它似乎缺少一个C库。 – toolic 2015-02-24 15:12:53

+4

你是如何安装模块的? – 2015-02-24 15:49:48

+0

*“我已将编译后的Processors.so放在.pm旁边,当它应该在自动目录中时”*您不应该将任何文件放在任何地方。您应该*从CPAN下载的分发包中安装*模块 – Borodin 2016-06-02 20:16:06

回答

10

Unix::Processors模块具有必须作为安装过程的一部分进行编译和链接的XS(C)组件。该错误消息Can't locate loadable object是参照该组分(a共享库),而不是.pm模块文件本身

这是一个错误安装的模块的一个症状,和最经常发生在当.pm文件已被简单地复制到位而不是按照perldoc perlmodinstall中所述正确安装。如果安装已被强制也会发生,无论构建和测试阶段出现任何错误。