Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 无法在CentOS 6上编译Crypt::Na钠_Perl_Perl Xs - Fatal编程技术网

Perl 无法在CentOS 6上编译Crypt::Na钠

Perl 无法在CentOS 6上编译Crypt::Na钠,perl,perl-xs,Perl,Perl Xs,系统安装的Perl版本是5.10.1,我知道它很旧;这些是基于RHEL的发行版的乐趣!无论是使用cpan,还是下载模块并makeit,我都会得到相同的结果: /usr/bin/perl /usr/share/perl5/ExtUtils/xsubpp -typemap /usr/share/perl5/ExtUtils/typemap Sodium.xs > Sodium.xsc && mv Sodium.xsc Sodium.c Error: Cannot parse

系统安装的Perl版本是5.10.1,我知道它很旧;这些是基于RHEL的发行版的乐趣!无论是使用
cpan
,还是下载模块并
make
it,我都会得到相同的结果:

/usr/bin/perl /usr/share/perl5/ExtUtils/xsubpp  -typemap /usr/share/perl5/ExtUtils/typemap  Sodium.xs > Sodium.xsc && mv Sodium.xsc Sodium.c
Error: Cannot parse function definition from 'crypto_generichash_state * T_PTRREF' in Sodium.xs, line 715
Error: 'crypto_generichash_state *' not in typemap in Sodium.xs, line 735
Error: 'crypto_generichash_state *' not in typemap in Sodium.xs, line 739
Error: 'crypto_generichash_state *' not in typemap in Sodium.xs, line 748
make: *** [Sodium.c] Error 1
周围的部分如下所示:

TYPEMAP: <<EOT
crypto_generichash_state * T_PTRREF
EOT

TYPEMAP:Centos 6附带的
ExtUtils::ParseXS
版本不支持嵌入式
TYPEMAP
。安装最新的
ExtUtils::ParseXS
libnaid
应该可以解决这个问题

发件人:

传统上,类型映射需要写入一个单独的文件,在CPAN发行版中通常称为
typemap
。使用perl 5.16附带的ExtUtils::ParseXS(XS编译器)3.12版或更高版本,还可以使用类似于HERE doc的语法将类型映射直接嵌入XS代码中:

TYPEMAP: <<HERE
...
HERE

TYPEMAP:Centos 6附带的
ExtUtils::ParseXS
版本不支持嵌入式
TYPEMAP
。安装最新的
ExtUtils::ParseXS
libnaid
应该可以解决这个问题

发件人:

传统上,类型映射需要写入一个单独的文件,在CPAN发行版中通常称为
typemap
。使用perl 5.16附带的ExtUtils::ParseXS(XS编译器)3.12版或更高版本,还可以使用类似于HERE doc的语法将类型映射直接嵌入XS代码中:

TYPEMAP: <<HERE
...
HERE

TYPEMAP:看起来不太好。但是如果您尝试安装
Crypt::Nasdium 0.10
。谢谢,我刚刚尝试过,如果我使用添加herdoc块之前存在的代码,它确实可以工作。当然,当涉及到安全问题时,最好是有一个最新的构建,但RHEL有时会让这变得很困难。您可以始终使用perlbrew或任何东西来设置本地最新的perl安装,而不是使用系统perl。看起来不太好。但是如果您尝试安装
Crypt::Nasdium 0.10
。谢谢,我刚刚尝试过,如果我使用在添加herdoc块之前存在的代码,它确实可以正常工作。当然,当涉及到安全问题时,最好有一个最新的构建,但RHEL有时会让这变得很困难。你可以使用perlbrew或任何东西来设置本地,您使用的最新perl安装,而不是系统perl。
cpan install ExtUtils::ParseXS
,然后是
cpan install Crypt::nail
。谢谢。
cpan安装ExtUtils::ParseXS
然后是
cpan安装Crypt::na钠
完成了。谢谢