在Ubuntu 16.04中Net :: SSLeay :: Handle编译错误

时间:2019-01-23 21:05:00

标签: perl ssl

我在我的Perl多线程版本(不是原始版本)中通过cpanm安装上述模块时遇到问题。 我有Ubuntu 16.04。 尝试编译和测试此模块时,它给我以下错误:

/usr/bin/ld: impossible to find -lz
collect2: error: ld returned 1 exit status
Makefile:494: instructions set for target "blib/arch/auto/Net/SSLeay/SSLeay.so" fail
make: *** [blib/arch/auto/Net/SSLeay/SSLeay.so] Error 1
-> FAIL Installing Net::SSLeay::Handle failed. See /home/my_name/.cpanm/work/1548275319.13675/build.log for details. Retry with --force to force install it.

openssl,ssllib-dev-perl,libnet-ssleay-perl,libcrypt-ssleay-perl已通过apt-get安装。 我也尝试过手动编译此模块,但没有成功。我也强制安装...没办法。 该错误似乎与/ usr / bin / ld中缺少的内容有关:(不可能找到-lz collect2)。

有人可以帮助我吗?

Cpanm一直运行良好。到目前为止,除Net :: SSLeay :: Handle之外,我已经能够安装所有模块并正常运行。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

好的,我通过安装此软件包(Ubuntu 16.04LTS)来解决:

-openssl -libssl-dev -libnet-ssleay-perl -libcrypt-ssleay-perl -zlib1g-dev如上所述

完成此操作后,请记住避免在gcc将要完成编译时测试模块,因为在大多数情况下,它会失败。 因此,执行此操作的最佳方法如下:

-cpanm install -v --notest Net :: SSLeay :: Handle

再次感谢所有Perl伙伴在此论坛上写作。 您保存了一天

答案 1 :(得分:-2)

首次登录cpan

Executor

强制安装模块应该起作用

THREAD_POOL_EXECUTOR

这也应该安装丢失的模块或引起注意