我正在尝试使用新版本的perl - 5.18.1,并且我尝试使用其中一个模块时出错:
/usr/local/perl-5.18.1/bin/perl:符号查找错误: /home/riskprod/bin/lib/perl5/x86_64-linux-thread-multi/auto/Cwd/Cwd.so: 未定义的符号:Perl_Tstack_sp_ptr
我有cpan并将其用于我的模块。根据我的研究,看起来错误的原因是它是使用不同版本的perl构建的。
如何更改构建版本?什么是这个问题的正确解决方案?
一些细节
以下是我在bash_profile中的内容:
export PERL_LOCAL_LIB_ROOT="/home/riskprod/perl5:$PERL_LOCAL_LIB_ROOT";
export PERL_MB_OPT="--install_base "/home/riskprod/perl5"";
export PERL_MM_OPT="INSTALL_BASE=/home/riskprod/perl5";
export PERL5LIB="/home/riskprod/perl5/lib/perl5:$PERL5LIB";
export PATH="/home/riskprod/perl5/bin:$PATH";
以下是我如何运行cpan:
/usr/local/perl-5.18.1/bin/perl -MCPAN -e shell
我这样做是为了重新安装:
force install Cwd
答案 0 :(得分:1)
您尝试使用的模块是针对不同的Perl版本编译的。目前尚不清楚你为此做了什么。也许您将PERL5LIB
设置为指向使用INSTALL_BASE
安装模块的目录? (该死的,INSTALL_BASE
!)你只需要重新安装模块,但它也有助于停止查看包含该模块的任何目录。