在 Ubuntu 18.04 上安装 perl 5.10.1

在 Ubuntu 18.04 上安装 perl 5.10.1

我正在尝试安装旧版本的 perl(5.10.1),因为它是我想要使用的软件的依赖项(并且新版本不起作用)我从https://www.cpan.org/src/README.html. 按照他们的指示:

 ./Configure -des -Dprefix=$HOME/localperl
 make
 make test
 make install

但是,make失败了:

cc -L/usr/local/lib -o miniperl \
    `echo  gv.o toke.o perly.o op.o pad.o regcomp.o dump.o util.o mg.o reentr.o hv.o av.o perl.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o xsutils.o globals.o perlio.o perlapi.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o  | sed 's/ op.o / /'` \
    miniperlmain.o opmini.o 
pp.o: In function `Perl_pp_pow':
pp.c:(.text+0x2d84): undefined reference to `pow'
pp.o: In function `Perl_pp_modulo':
pp.c:(.text+0x3b80): undefined reference to `fmod'
pp.o: In function `Perl_pp_atan2':
pp.c:(.text+0x8884): undefined reference to `atan2'
pp.o: In function `Perl_pp_sin':
pp.c:(.text+0x8978): undefined reference to `sqrt'
pp.c:(.text+0x8a23): undefined reference to `log'
pp.c:(.text+0x8a4e): undefined reference to `cos'
pp.c:(.text+0x8afb): undefined reference to `sin'
pp.c:(.text+0x8b13): undefined reference to `exp'
collect2: error: ld returned 1 exit status
makefile:313: recipe for target 'miniperl' failed
make: *** [miniperl] Error 1

我曾尝试安装 miniperl(不管它是什么)apt install libcpan-mini-perl,但没有什么区别。这个问题提到这是数学库的问题,但我不知道如何在这种情况下应用此解决方案。我猜必须编辑makefile某个地方,但在哪里呢?

答案1

只需复制命令,然后-lm最后添加,例如:

cc -L/usr/local/lib -o miniperl \
    `echo  gv.o toke.o perly.o op.o pad.o regcomp.o dump.o util.o mg.o reentr.o hv.o av.o perl.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o xsutils.o globals.o perlio.o perlapi.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o  | sed 's/ op.o / /'` \
    miniperlmain.o opmini.o -lm

然后重新运行makemake程序将认为依赖关系已解决并继续编译。

相关内容