在CPAN上部署xs模块

时间:2018-10-16 17:09:46

标签: perl xs

我正在寻找不同的xs cpan模块,但它们不包含要绑定的库的实际源代码,

例如在该库https://st.aticpan.org/source/NANIS/Net-Sharktools-0.009/的xs模块上:https://st.aticpan.org/source/NANIS/Net-Sharktools-0.009/Sharktools.xs

具有“ #include“ sharktools_core.h”,但是如果我在metacpan上浏览文件,则找不到该文件。

与此模块相同的问题:https://metacpan.org/pod/Crypt::OpenSSL::RSA .xs文件包含#include到不同的openssl文件,但是这些文件不在分发中。

在安装了这样的xs模块时,它如何包含标头并在C文件不属于发行版的情况下编译C文件?

1 个答案:

答案 0 :(得分:7)

这些发行版期望这些库在要安装到的系统上可用。因此,例如对于Crypt :: OpenSSL :: RSA,它期望您为系统安装import { connect } from 'react-redux';或等效软件包。制作不需要这样做的发行版的一种方法是(单独)发布Alien发行版,而现在最简单的方法是使用Alien::Build。 Alien发行版表示使用现有已安装的库或将库安装在Perl的库目录中(以供Perl使用的任何一种方式)。例如,Alien::OpenSSLAlien::LibreSSL都存在,并且可以由想要确保SSL库可用的发行版使用。您的XS发行版会将Alien发行版添加为依赖项,然后可以通过该库使用库。