Perl 无法在CentOS 6上编译Crypt::Na钠
系统安装的Perl版本是5.10.1,我知道它很旧;这些是基于RHEL的发行版的乐趣!无论是使用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
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钠
完成了。谢谢