我需要使用 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
Run Code Online (Sandbox Code Playgroud)
现在 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 是我的模块之一,但我的文件中没有任何类似的功能。
您平台上的宏__INT16_C可能很简单,例如,
#define __INT16_C(c) c
Run Code Online (Sandbox Code Playgroud)
将第 164 行的代码替换为
eval 'sub __INT16_C {
my($c) = @_;
eval q($c);
}' unless defined (&__INT16_C);
Run Code Online (Sandbox Code Playgroud)
这是其他版本h2ph生成的。
| 归档时间: |
|
| 查看次数: |
935 次 |
| 最近记录: |