将sys / ioctl.ph添加到Perl头文件中

时间:2012-08-20 14:29:16

标签: perl ioctl

我需要使用sys / ioctl.ph,它不包含在我的slackware发行版附带的perl版本(5.12.3)中。

我做了以下事情:

cd /usr/include
h2ph sys/ioctl.ph
cd /usr/lib64/perl5/site_perl/5.12.3/x86_64-linux-thread-multi/
mkdir sys
mv ioctl.ph sys

现在perl解释器没有抱怨sys / ioctl.ph,但这是我得到的错误:

Illegal declaration of subroutine Functions::ServerSocket::__INT16_C at /usr/lib64/perl5/site_perl/5.12.3/x86_64-linux-thread-multi/_h2ph_pre.ph line 164.

这是文件中导致第164行错误的内容:

unless (defined &__INT16_C(c)) { sub __INT16_C(c)() { &c } }

我不知道从哪里开始。函数:: ServerSocket是我的模块之一,但我的文件中没有这样的函数。

1 个答案:

答案 0 :(得分:0)

您平台上的__INT16_C宏可能很简单,例如

#define __INT16_C(c) c

使用

替换第164行的代码
eval 'sub __INT16_C {
    my($c) = @_;
    eval q($c);
}' unless defined (&__INT16_C);

这是其他版本的h2ph生成的内容。