安装perl模块Class-Load-XS

时间:2012-04-03 00:50:28

标签: perl

我尝试手动安装模块Class-Load-XS-0.04。我看到以下错误:

$ perl Build.PL
Warning: ExtUtils::CBuilder not installed or no compiler detected
Proceeding with configuration, but compilation may fail during Build

然而,perl -e 'use ExtUtils::CBuilder'的执行完全没问题。我甚至尝试重新安装ExtUtils::CBuilder,但它仍然无效。

你能帮忙吗?

4 个答案:

答案 0 :(得分:1)

我尝试使用Win 7机器,当我执行perl Build.pl时,它会显示一些类似的警告:

collect2: ld returned 1 exit status
Checking prerequisites...
  requires:
    !  Class::Load is not installed
  build_requires:
    !  Class::Load is not installed
    !  Module::Implementation is not installed
    !  Test::Fatal is not installed
    !  Test::Requires is not installed

ERRORS/WARNINGS FOUND IN PREREQUISITES.  You may wish to install the versions
of the modules indicated above before proceeding with this installation

然后我安装了上面提到的模块,然后事情就好了。

您可以先尝试安装这些模块。 希望能帮助到你。

答案 1 :(得分:1)

在我看来,你没有编译器。试试这个:

perl -e 'use ExtUtils::CBuilder; $cb = ExtUtils::CBuilder->new; print $cb->have_compiler ? "have\n" : "dont have\n";'

我可以猜测你是在Windows上使用ActiveState Perl吗?如果是这样,也许尝试编译器附带的Strawberry Perl

答案 2 :(得分:1)

安装不同模块(Win32::Mutex)时遇到类似问题。这不是一个很好的修复,但它完成了工作。从构建目录(例如,~/.cpan/build/The-Module-mYyzLx

首先,自己设置CC环境变量

SET CC=C:\strawberry\c\bin\g++.exe         [Windows]
export CC=/usr/bin/g++.exe                 [Cygwin]

并尝试构建(perl Build.PLperl Build,...)。如果它仍在抱怨丢失的程序(g++dlltool等):

其次,将工具链的各个部分复制到构建目录

COPY C:\strawberry\c\bin\g++.exe .         [Windows]
COPY C:\strawberry\c\bin\dlltool.exe .

cp /usr/bin/g++ .                          [Cygwin]
cp /usr/bin/dlltool .

如果构建仍然抱怨缺少程序,请将它们复制到构建目录中。

修复和症状与ExtUtils::CBuilder无法使用当前PATH设置一致,但我不知道会有什么困难。

答案 3 :(得分:0)

我建议先安装这些:

apt-get install libc6-dev

apt-get install libtest-exception-perl

顺便提一下,你描述了这个问题,看起来你错过了这两个perl模块。另一方面,只需几秒钟即可仔细检查是否安装了这些,但这些“秒”和“可以帮助你节省很多头疼。