关于编译:如何打包我的Perl脚本以在没有Perl的计算机上运行?

关于编译:如何打包我的Perl脚本以在没有Perl的计算机上运行?

How can I package my Perl script to run on a machine without Perl?

人们还经常问"如何编译Perl?" 他们真正想要的是创建一个即使在没有安装Perl的情况下也可以在计算机上运行的可执行文件。

我知道有几种解决方案:

  • IndigoStar的perl2exe
    它是商业的。 我没试过 它的网站说它可以交叉编译Win32,Linux和Solaris。
  • ActiveState的Perl开发套件。
    它是商业的。 几年前,我在Windows上使用了它,它可以很好地满足我的需求。 根据其网站,它可以在Windows,Mac OS X,Linux,Solaris,AIX和HP-UX上运行。
  • PAR或更确切地说是PAR :: Packer,它是免费的开放源代码。 根据测试报告,它可以在Windows,Mac OS X,Linux,NetBSD和Solaris上运行,但从理论上讲,它也可以在其他UNIX系统上运行。
    最近,我开始在Linux上使用PAR进行打包,并且还将在Windows上使用它。
  • 其他推荐的解决方案?


    除了问题中列出的三个工具之外,还有另一个由Mark Dootson编写的名为Cava Packager的工具,他过去也为PAR做出了贡献。它仅在Windows下运行,具有出色的Wx GUI,并且与典型的三个竞争者不同,它在Source / lib目录中组装了所有Perl依赖项,而不是创建包含所有内容的单个存档。有一个免费版本,但不是开放源代码。除了测试之外,我没有使用过它。

    至于PAR,它实际上是一个工具包。它带有一个打包工具,该工具可以进行依赖项扫描和独立可执行文件的汇编,但是它也可以用于生成和使用所谓的.par文件,类似于Java的JAR。它还带有客户端和服务器,用于通过网络自动加载缺少的软件包等。我在YAPC :: EU 2008上的PAR幻灯片详细介绍了此内容。
    还有一个活动的邮件列表:perl dot org的票面价格。


    自从首次提出此问题以来已有一段时间,但是Cava Packager当前可以为Windows,Linux和Mac OS X生成可执行程序包。它不再仅仅是Windows。

    注意:正如我的名字所示,我隶属于Cava Packager。


    我是Perl的新手,我刚刚下载了Cava Packager,这是我发现的唯一工作方式。我在Windows XP上使用PAR-Packager尝试了ActiveState 5.10.1005和Strawberry Perl。
    pp只是挂在中间,没有创建可执行文件。

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


    您可以使用大多数Perl发行版附带的perlcc工具。我还发现perl2exe和Active State的Perl Dev套件都对运送Perl应用程序很有用。


    推荐阅读