我如何编译我的Perl脚本,以便可以在没有安装perl的系统上执行?
我有一个.pl
文件,我想在任何系统中执行该文件,即使没有安装perl
。 我怎么能实现它?
有谁能让我知道一些很好的例子吗?
pp可以创build一个可执行文件,其中包括perl和脚本(以及任何模块依赖项),但是它只针对您的体系结构,所以不能在Windows和Linux上运行。
从它的文档:
要创build一个独立的可执行文件,适合在没有安装perl的机器上运行:
% pp -o packed.exe source.pl # makes packed.exe # Now, deploy 'packed.exe' to target machine... $ packed.exe # run it
(%和$在不同的机器上有命令提示符)。
-
安装
PAR::Packer
。 * nix示例:sudo cpan -i PAR :: Packer
对于Windows的草莓Perl或安装的ActivePerl和MSVC:
cpan -i PAR :: Packer
-
用
pp
包装。 它将在Windows上创build一个名为“example”或“example.exe”的可执行文件。pp -o example example.pl
这只适用于它所在的操作系统。
PS没有Perl就很难find一个Unix克隆。 你的意思是Windows?
看看PAR (Perl Archiving Toolkit)。
PAR是跨平台打包和部署工具,被称为Java JAR和Perl2EXE / PerlApp之间的交叉。
从perlfaq3的答案我怎样才能编译我的Perl程序到字节码或C? :
(由布莱恩福伊提供)
一般来说,你不能这样做。 有些东西可能适用于您的情况。 人们通常会问这个问题,因为他们想分发他们的作品,而不必提供源代码,而且大多数解决scheme都是为了方便而交换磁盘空间。 由于大多数解决scheme只是在最终产品中捆绑一个Perl解释器(但请参阅如何使我的Perl程序运行速度更快?),您可能不会看到很多速度增加。
Perl归档工具包(Perl Archive Toolkit, http://par.perl.org/ )是Perl对Java的JAR的模拟。 免费提供,并在CPAN上( http://search.cpan.org/dist/PAR/ )。
也有一些商业产品可以为你工作,虽然你必须为他们购买许可证。
ActiveState的Perl开发工具包( http://www.activestate.com/Products/Perl_Dev_Kit/ )可以“将Perl程序转换为适用于HP-UX,Linux,Solaris和Windows的可立即运行的可执行文件”。
Perl2Exe( http://www.indigostar.com/perl2exe.htm )是一个用于将perl脚本转换为可执行文件的命令行程序。 它针对Windows和Unix平台。
我们不要忘记ActiveState的PDK 。 它将允许您编译UI,命令行,Windows服务和安装程序。
我强烈推荐它,多年以来它的function非常好,但许可证的价格大约是300美元。
注意思南和布莱恩:perlfaq3仍然是错误的。
Cava Packager在Windows生态系统上非常出色。
Perl文件是脚本,而不是可执行程序。 因此,他们“跑”,他们将需要一个翻译。
所以,你有两种select:1)让机器上的解释器运行脚本,或者2)让脚本运行在远程连接的networking(或Internet)机器上(即用浏览器)
在MaxOSX上可能有perlcc 。 键入man perlcc 。 在我的系统上(10.6.8)它在/ usr / bin中。 因人而异
参见http://search.cpan.org/~nwclark/perl-5.8.9/utils/perlcc.PL