5

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 } }

どこから始めればよいかわかりません。Functions::ServerSocket は私のモジュールの 1 つですが、私のファイルにはそのような関数はありません。

4

1 に答える 1

0

あなたのプラットフォームの__INT16_Cマクロはおそらく単純です

#define __INT16_C(c) c

164 行目のコードを次のように置き換えます。

eval 'sub __INT16_C {
    my($c) = @_;
    eval q($c);
}' unless defined (&__INT16_C);

これは、他のバージョンのh2ph生成物です。

于 2012-12-01T15:08:18.663 に答える