我尝试手动安装模块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
,但它仍然无效。
你能帮忙吗?
答案 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.PL
,perl 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模块。另一方面,只需几秒钟即可仔细检查是否安装了这些,但这些“秒”和“可以帮助你节省很多头疼。