Perl 如何安装pp(PAR分装机)?

Perl 如何安装pp(PAR分装机)?,perl,par,perl-packager,Perl,Par,Perl Packager,我必须从Perl脚本创建一个exe。我安装了 ActivePerl-5.14.2.1402-MSWin32-x86-295342.msi 如何安装?这是一个名为的Perl模块,因此它可以作为任何带有CPAN的Perl模块安装。不幸的是,您使用的是ActivePerl,它与CPAN不太兼容。相反,您可以查看是否使用ActiveState安装此模块 如果模块不能通过Perl包管理器使用,您可以尝试使用CPAN命令行实用程序进行安装。打开控制台窗口(开始->附件->命令提示符),输入cpan,然后按

我必须从Perl脚本创建一个exe。我安装了

ActivePerl-5.14.2.1402-MSWin32-x86-295342.msi

如何安装?

这是一个名为的Perl模块,因此它可以作为任何带有CPAN的Perl模块安装。不幸的是,您使用的是ActivePerl,它与CPAN不太兼容。相反,您可以查看是否使用ActiveState安装此模块

如果模块不能通过Perl包管理器使用,您可以尝试使用CPAN命令行实用程序进行安装。打开控制台窗口(开始->附件->命令提示符),输入
cpan
,然后按
。当您第一次开始使用CPAN时,较新版本的ActiveState应该安装所需的编译器等

我更喜欢Windows,因为它更兼容CPAN。然而,ActivePerl已经安装了很多Win32模块。另外,它还附带了Perl包管理器,这很好


警告:ActiveState安装的许多Perl脚本不是在
C:\Perl\bin
中,而是在
C:\Perl\Site\bin
中,这意味着您必须确保目录也在您的路径中。

从v1.010开始,软件无法自动打包,请参阅上的报告


使用PPM安装CPAN,然后继续执行:

直到
1.010
的问题得到解决,请执行以下操作:

  • 从“其他版本”下拉列表中,选择
    PAR-Packer-1.009
    并下载它

  • 解压缩存档,保留目录结构

  • 运行
    perl Makefile.PL

  • 使用
    ppm
    手动安装所有缺少的必备组件。例如,
    ppm安装模块::ScanDeps

  • 安装MingW:
    ppm安装MingW

  • dmake
    ,然后
    dmake测试
    ,然后
    dmake安装


  • 稍后,您可以使用
    ppm
    GUI从站点区域删除
    PAR::Packer
    ,并安装固定版本。

    我知道这是一个比较老的问题,但为了其他人的利益,这里有一个使用pp()的解决方案:

    ppm install MinGW
    cpanp i Win32::Exe PAR::Packer
    
  • 为windows安装(我安装了草莓-perl-5.16.3.1-64bit.msi)
    • 我之所以使用5.16.3.1,是因为我想在使用perl2exe时也试用它(perl2exe当时只支持5.16.3版本的perl)
  • 安装后,打开草莓Perl工具(例如,通过开始菜单->所有程序->草莓Perl->工具),并调用CPAN客户端
  • 在打开的客户端控制台中,键入:
    • get pp
    • 安装pp
  • 安装完成后,您只需运行:
    • c:\草莓\perl\site\bin\pp.bat-o myScript.exe myScript.pl
    • 这将生成一个myScript.exe,它是一个独立的可执行文件(不需要外部的perl解释器)

  • 注意:您可以使用-d命令行开关来减小可执行文件的大小。这不会在可执行文件中包含perl解释器代码,从而减小可执行文件的大小,但是您需要在与可执行文件相同的目录中提供perl5x.dll,或者将其包含在PATH环境变量中。

    除了上述答案, 您可以使用cpan安装PAR::Packer。 在windows命令提示符下,使用以下命令:cpan install PAR::Packer。 注意:我已经安装了草莓perl。
    cpan也会安装模块和依赖项。

    @JackManey-如果海报上问要使用哪个版本的Perl,我会支持草莓而不是ASP,但是ASP已经安装好了。但是,ActiveState可以使用CPAN安装模块,如果需要,将安装MinGW。我还没有发现ASP不会安装的模块,尽管人们告诉我有一些。如果没有“PAR::Packer或草莓Perl”模块的说明,这不是一个非常有用的答案。