为什么我不能在Solaris 10上构建装载Socket.so的Perl模块? [英] Why can't I build Perl modules that load Socket.so on Solaris 10?

查看:29
本文介绍了为什么我不能在Solaris 10上构建装载Socket.so的Perl模块?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试构建Convert :: ASN1模块,但是在处理过程中出现错误.我在 Solaris 10 上使用 Perl 5.12.0.perl Makefile.PL 运行没有问题,make 也一样,但是make test"抛出这个错误:

I am trying to build Convert::ASN1 module but I get an error in the process. I am using Perl 5.12.0 on Solaris 10. perl Makefile.PL runs without trouble, same for make, but 'make test' throws this error:

IMO的最重要组成部分:

MOST CRUCIAL PART OF IT IMO:

t/00prim.t ....... Can't load '/usr/local/lib/perl5/5.12.0/sun4-solari +s/auto/Socket
/Socket.so' for module Socket: ld.so.1: perl5.12.0: fata +l: 
relocation error: file /usr/local/lib/perl5/5.12.0/sun4-solaris/au +to/Socket/Socket.so:
 symbol inet_aton: referenced symbol not found at + /usr/local/lib/perl5/5.12.0/XSLoader.pm
 line 70.

当我尝试安装IO :: Socket时发生了相同的错误.我认为Socket核心模块一定有问题.这不是错误日志的全部,而是主要部分.

Same error occured when I tried to install IO::Socket. I think something must be wrong with the Socket core module. This is not all of the error log but the main part.

推荐答案

注意:此答案是纯粹的推测,因为我没有Solaris机器可以对其进行测试.

Note: this answer is pure conjecture as I don't have a Solaris machine to test this on.

看来Solaris并未将 inet_aton 放在 libsocket 中,这大概是在构建 Socket 时要链接的对象.相反,您似乎需要在Makefile的 LIBS 行中添加 -lresolv (我不知道它是否在 Makefile.PL 用于 Socket ...).

It looks like Solaris doesn't put inet_aton in libsocket, which is presumably what is being linked against when you build Socket. Instead, it looks like you need to add -lresolv to the LIBS line in the Makefile (I don't know if this is in the Makefile.PL for Socket...).

就像我说的那样,这是纯粹的推测.我主要是从此DBMail错误报告.我希望它能带你到某个地方.

Like I said, this is pure conjecture. I'm pulling this answer mostly from this bug report for DBMail. I hope it gets you somewhere, though.

这篇关于为什么我不能在Solaris 10上构建装载Socket.so的Perl模块?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆