提问人:miken32 提问时间:10/17/2018 更新时间:10/27/2018 访问量:129
无法在 CentOS 6 上编译 Crypt::Sodium
Unable to compile Crypt::Sodium on CentOS 6
问:
系统安装的Perl版本是5.10.1版本,我知道它是旧的;这些都是基于 RHEL 的发行版的乐趣所在!无论我使用 还是下载模块,我都会得到相同的结果,它:cpan
make
/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
第 715 行周围的部分如下所示:
TYPEMAP: <<EOT
crypto_generichash_state * T_PTRREF
EOT
我假设“不在类型图中”错误是初始错误的结果,但我对 Perl 模块的构建方式完全没有经验;我什至不确定这个 XS 东西是什么。关于如何继续的任何建议?
答:
4赞
Sherwin Daganato
10/27/2018
#1
Centos 6 附带的版本不支持嵌入式 .安装最新的,应该可以解决问题。ExtUtils::ParseXS
typemap
ExtUtils::ParseXS
libsodium
来自 https://perldoc.perl.org/perlxstypemap.html#Anatomy-of-a-typemap:
传统上,类型图需要写入一个单独的文件,通常在 CPAN 发行版中调用。使用 perl 5.16 附带的 ExtUtils::P arseXS(XS 编译器)3.12 或更高版本,类型映射也可以使用类似 HERE-doc 的语法直接嵌入到 XS 代码中:
typemap
TYPEMAP: <<HERE ... HERE
where 可以替换为其他标识符,例如普通的 Perl HERE-docs。以下有关类型图文本格式的所有详细信息仍然有效。
HERE
评论
0赞
miken32
10/27/2018
cpan install ExtUtils::ParseXS
紧随其后的是做到了。谢谢。cpan install Crypt::Sodium
评论
Crypt::Sodium 0.10