美文网首页
GD.so: undefined symbol: Perl_Gt

GD.so: undefined symbol: Perl_Gt

作者: SnorkelingFan凡潜 | 来源:发表于2020-12-21 21:05 被阅读0次

超折腾人的报错

perl: symbol lookup error: perl_modules/lib/auto/GD/GD.so: undefined symbol: Perl_Gthr_key_ptr

题记:用circos画图时莫名的出现这样消除不了的报错,怎么找也找不到原因,现给出解决方法如下


  1. 咋一看是Perl缺少模块的问题,于是去装Perl的GD模块
    https://github.com/lstein/Perl-GD
    结果发现装了之后还是和之前一样的,并没有这个GD.so模块
  2. 仔细阅读官网,出现这一句:
"Fatal error: can't load module GD.so", or "Fatal error: unknown
symbol gdFontSmall" when you try to run a script that uses GD, you may
have problems with dynamic linking.  Check whether other
dynamically-linked Perl modules such as POSIX and DB_File run
correctly.  If not, then you'll have to link Perl statically, as
described above.  Other problems may be fixed by compiling libgd as a
shared library, as described in step (2) of the installation
instructions.

这应该是说明根本就没有这个 GD.so模块,但是我又没有软连接,只有很多Perl5的环境变量,于是去排查Perl5的环境变量

  1. export PERL5LIB的环境变量有很多,于是去打算注释几个
    关键是source ~/.bashrc之后还是会出现原来的perl_modules/lib/auto/GD/GD.so: undefined symbol: Perl_Gthr_key_ptr路径,这个我是注释了的,怎么还是调用了呢?
  2. 请教之后发现需要退出登录,才能生效,保留模块完整的不冲突的perl_modules路径export PERL5LIB=/perl_module/perl_modules/lib:$PERL5LIB,注释掉conda的自启动,退出远程帐户再登录才生效!!!

跑转录组blast.kegg.process.sh时也出现了这样的Perl 模块报错,同时得到解决。

perl: symbol lookup error: /software/perl_module/perl_modules/lib/auto/GD/GD.so: undefined symbol: Perl_Gthr_key_ptr
blast.kegg.process.sh.e4149563 (END)

总结:在确认已经有完整的Perl模块的时候,并不是缺少模块,而是怀疑环境变量的perlLIB是不是有冲突,注释掉冲突的perlLIB以及conda,退出再生效,可以解决此类问题

相关文章

网友评论

      本文标题:GD.so: undefined symbol: Perl_Gt

      本文链接:https://www.haomeiwen.com/subject/rkudnktx.html