为什么即使安装模块后我也找不到“无法找到模块的可加载对象”?

时间:2015-02-24 15:08:29

标签: perl module

有人能指出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目录中时。

1 个答案:

答案 0 :(得分:13)

Unix::Processors模块有一个XS(C)组件,必须在安装过程中进行编译和链接。错误消息Can't locate loadable object指的是此组件(共享库)而不是.pm模块文件本身

这是错误安装模块的症状,并且最常发生在.pm文件被简单复制到位而不是按perldoc perlmodinstall中所述正确安装的情况下。如果安装已强制,也可能发生这种情况,无论构建和测试阶段是否存在任何错误。