人们也经常会问“如何编译Perl?” 而他们真正想要的是创建一个可以在机器上运行的可执行文件,即使他们没有安装Perl。

我知道有几种解决方案:

  1. IndigoStar的perl2exe它是商业的。 我从未尝试过。 它的网站说它可以交叉编译Win32,Linux和Solaris。
  2. 来自ActiveState的Perl Dev Kit 它是商业的。 几年前我在Windows上使用它,它可以很好地满足我的需求。 根据其网站,它适用于Windows,Mac OS X,Linux,Solaris,AIX和HP-UX。
  3. PAR或者更确切地说PAR :: Packer是免费和开源的。 基于测试报告,它可以在Windows,Mac OS X,Linux,NetBSD和Solaris上运行,但理论上它也可以在其他UNIX系统上运行。 最近我开始在Linux上使用PAR进行打包,并且也将在Windows上使用它。

其他推荐解决方案

===============>>#1 票数:12 已采纳

除了问题中列出的三个工具之外,还有另一个名为Cava Packager的人 ,由Mark Dootson编写,他过去也曾为PAR做过贡献。 它只能在Windows下运行,有一个很好的Wx GUI,与典型的三个竞争者的工作方式不同,因为它汇集源/ lib目录中的所有Perl依赖项,而不是创建包含所有内容的单个存档。 有一个免费版本,但它不是开源的。 我没有用过这个,除了测试。

至于PAR,它确实是一个工具包。 它附带了一个打包工具,可以执行独立可执行文件的依赖项扫描和组装,但它也可以用来生成和使用所谓的.par文件,类似于Java的JAR。 它还带有客户端服务器,用于通过网络自动加载丢失的软件包等。我YAPC :: EU 2008上的PAR演讲幻灯片详细介绍了这一点。 还有一个活跃的邮件列表:parl at perl dot org。

===============>>#2 票数:5

这个问题首次被问到已经有一段时间了,但是Cava Packager目前可以为Windows,Linux和Mac OS X生成可执行程序包。它不再仅仅是Windows。

注意:正如我的名字所示,我与Cava Packager有联系。

===============>>#3 票数:1

我是Perl新手,我刚下载了Cava Packager,这是我发现的唯一一个。 我在Windows XP上尝试过ActiveState 5.10.1005和带有PAR-Packager的Strawberry Perl。 pp只是在流中挂起而没有创建可执行文件。

到目前为止,Cava提供了在Windows上创建exe的唯一解决方案。 THKS。

===============>>#4 票数:-3

您可以使用大多数Perl发行版附带的perlcc工具。 我还发现perl2exe和Active State的Perl开发工具包对于运送Perl应用程序非常有用。

  ask by community wiki translate from so

未解决问题?本站智能推荐:

1回复

将Perl脚本编译为.exe [重复]

可能重复: 如何编译Perl脚本,以便可以在未安装Perl的系统上执行它? 如何打包我的Perl脚本以在没有Perl的计算机上运行? 做到这一点的最好方法是什么。 我一直在为komodo IDE使用activestate插件,但是我的许可证已过期,现在我正在尝试寻找一种更便
1回复

使用pp编译perl源

我有一个运行良好的perl脚本(在debian linux上的bash终端中编写),使用pp编译时无法执行(在linux或Windows上)。 这可能与构建中未满足的依赖关系有关,但是我确实相信以下命令将所有依赖关系打包到可执行文件中: 当我说它运行良好时,是指如果我从bash终端调用
3回复

在没有扩展名的Windows上运行perl脚本

我试图找到一种方法来注册扩展名为.pl的文件作为可执行文件。 我花了一些时间在网上寻找解决方案,但我找不到任何东西。 我能做什么:我制作了一个剧本,我们称之为myscript.pl 我可以像这样运行它: 既然文件与perl相关联,我也可以将其运行为: 现在,我知道有一
1回复

如何将perl脚本打包为32位可执行文件?

我在64位Windows 7机器上,我一直在使用PAR:Packager将我的脚本PAR:Packager为.exe的。 但是,我现在需要在32位Windows 7机器上运行这些.exe 。 无论如何将它打包为64位机器的32位可执行文件? ( PAR:Packager有可能吗?)
2回复

Perl脚本记录外部可执行文件输出和错误,但仍然运行

我有一个Perl脚本,它运行一个外部可执行文件。 该可执行文件运行一段时间(有时是秒,有时是一小时),可以将文本吐出到STDOUT和STDERR以及退出代码,这些都是必需的。 下面的代码演示了第一个成功的外部可执行文件运行(带有一行的小bash脚本 - 注释),然后出现状态不佳(例如gs -
2回复

如何使用脚本分发perl模块?

这是个好主意吗? 我写了一个脚本,它使用了一些不受欢迎的模块。 安装它们需要花费很多时间,因此我认为将它们与应用程序一起分发会更好。 我怎样才能做到这一点?
2回复

在编译的Perl脚本上指定-p选项

我在Windows 10下使用Strawberry Perl。我有一个Perl脚本,通常使用-p选项调用。 我想使用PAR :: Packer的pp程序将其编译为可执行文件.exe。 是否可以指定应使用-p选项执行? 无论是在编译pp命令的命令上,还是在生成的可执行文件的命令行上运
2回复

如何使Perl脚本可执行?

我已在基于Unix的系统上授予了perl脚本文件可执行文件权限,但是当我尝试执行该文件时,出现"command not found"错误。 我在脚本文件的开头有#!usr/local/bin/perl 。
1回复

是否可以编译Crystal脚本,使其可以在任何Linux机器上运行,而无需用户下载Crystal

Crystal相当于OCRA(一键式Ruby应用程序生成器),但仅适用于Windows,而我使用Linux。
1回复

如何使用Perl脚本静默安装exe文件

我想使用Perl编码静默安装软件可执行文件。 我检查有一个安装程序模块来运行可执行文件,但没有运气。 请提出一些想法发起回应。