gpt4 book ai didi

perl - 我应该如何分发预构建的 perl 模块,以及我构建的 perl 版本是什么?

转载 作者:行者123 更新时间:2023-12-01 02:57:20 28 4
gpt4 key购买 nike

这可能是一个多部分的问题。背景:我们有一个本地 (c++) 库,它是我们应用程序的一部分,我们已经设法使用 SWIG 为这个库生成一个 perl 包装器。我们现在想将这个 perl 模块作为我们应用程序的一部分进行分发。

我的第一个问题 - 我应该如何分发这个模块?有没有标准的方法来打包预先构建的 perl 模块?我知道 ActiveState 发行版有 ppm,但我还需要为 linux 系统分发它。我什至不确定分发需要哪些文件,但我猜它至少是 pm 和 so 文件。

我的下一个问题 - 看起来我可能需要为我想要支持的每个版本的 perl 构建我的模块项目。我怎么知道我应该为哪个 perl 版本构建?是否有任何标准指南......或者更好的方法来构建一个可以与多个版本的 perl 一起使用的包?

对不起,如果我的问题没有意义 - 我对 perl 的编译模块方面相当陌生。

澄清:底层编译源是专有的(封闭源),所以我不能只为包提供源代码和适当的制作工件。希望我能,但在这种情况下不会发生。因此,我需要一个合理的方案来为我的模块打包预构建的二进制文件。

最佳答案

我负责 DBD::Informix,它是与 DBI(Perl 数据库接口(interface))一起工作的 Perl 数据库驱动程序模块之一。用于连接到 IBM Informix Dynamic Server (IDS) 的底层库是专有的,但 DBD::Informix 代码本身不是。我在 CPAN 上分发该代码,就像任何其他 Perl 模块一样。人们可以下载该源代码,并且(假设他们的机器上安装了 Informix ClientSDK - 以及 Perl 和 DBI 等),他们可以构建 DBD::Informix 以使用他们安装的 Perl。

我强烈建议你安排你的 Perl 接口(interface)代码以源代码形式提供,即使它接口(interface)的库是专有的。这允许人们使用他们拥有的任何版本的 Perl 安装代码 - 而无需您处理不一致的问题。

如果你仍然想提供二进制支持,你将不得不确定你想支持哪些平台,并在每个这样的平台上使用标准版本的 Perl 构建模块。这变得一团糟。您需要访问每台机器的实例。诚然,虚拟机使这更容易,但它仍然很繁琐,平台和版本的数量只会增加。但是你仍然需要支持那些不在他们的机器上使用标准版本 Perl 的人——这就是为什么 Perl 包装器接口(interface)需要以源代码的形式提供。

关于perl - 我应该如何分发预构建的 perl 模块,以及我构建的 perl 版本是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2388821/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com