【问题标题】:Net::SSLeay::Handle compiling error in Ubuntu 16.04Net::SSLeay::Handle Ubuntu 16.04 中的编译错误
【发布时间】:2019-06-17 12:55:57
【问题描述】:

我在我的 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 之外,我已经能够安装所有模块并且运行良好。

感谢您的帮助

【问题讨论】:

  • 确保你有 zlib-dev 或者那个包是在 ubuntu 上命名的?
  • 尝试安装zlib1g-dev?
  • 那是对的伙伴!

标签: perl ssl


【解决方案1】:

好的,我通过安装这个包解决了(Ubuntu 16.04LTS):

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

完成此操作后,请记住在 gcc 将完成编译时避免测试模块,因为在大多数情况下它会失败。 所以最好的咒语应该如下:

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

再次感谢所有在这个论坛上写作的 Perl 伙伴。 你拯救了这一天

【讨论】:

  • gr8。此解决方案有效。你只需要安装上面提到的那些依赖项。
【解决方案2】:

先登录cpan

sudo cpan

强制安装模块应该可以工作

force install Net::SSLeay::Handle

这也应该安装缺少的模块或注意到它

【讨论】:

  • 这不会解决构建问题,最多只会导致安装失败。
  • 您无需“登录”。它只是一个命令行程序,您可以一次完成所有操作:cpan -f Net::SSLeay::Handle。但是,这并不能神奇地使它正确编译。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-12
  • 2016-09-19
  • 1970-01-01
  • 2016-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多