我在编译perl脚本时遇到了很多困难。我在脚本中使用各种模块:
use fetchinfo; #which I wrote so it's in the same directory as my script
use threads;
use threads::shared;
use Tk;
use Fcntl ':flock';fetchinfo.pm还使用了以下模块:
use WWW::Mechanize;
use URI::Escape;
use Date::Calc qw(Delta_Days);
use LWP::Simple;
use HTML::Parser;我在我的机器上安装了ActivePerl (64位Win 7)。
我正在尝试编译我的代码,并使它成为一个独立的.exe文件(尽管能够为其他系统编译也很好(因为我认为我的代码不使用任何特定于系统的功能)。
我不介意安装虚拟机(如果需要32位win或linux),我不介意安装Strawberry而不是ActivePerl.我只想能够编译代码:-)
试图使用perl2EXE,它说它找不到几个模块(虽然每个模块都是用ppm安装的)。我试着用Packager (PAR::Packer)在linux上编译(因为它在ppm上没有显示,而且我没有以其他方式安装它),但是创建的文件没有工作。
..。帮助?:-)
发布于 2013-03-23 12:47:14
您是否知道perl2exe所做的一切就是创建包含所有源文件的perl解释器可执行文件的副本(可能处于编译状态,我不确定)?
我建议您使用PAR package,它将构建一个存档文件,其中包含可以从perl命令行运行的所有必要源。
如果您绝对必须有一个可执行映像,那么请看PAR::Packer。
更新
实际上,我希望这个程序能在没有安装perl的计算机上运行。我知道我必须编译我的代码才能让它起作用。PAR包不会那么做的,对吧?
不,您不需要编译Perl源代码就可以将其放入包中。这样做会适得其反,因为由于解释结果解析树所需的额外ByteLoader模块,负载时间往往会增加。
实际上,我需要安装和使用PAR::Packer的帮助,因为我无法在windows上的ActivePerl上安装它,而它在linux上为我创建的可执行文件在windows 64位上没有工作。所以我做错事了
我没有ActivePerl的实例,但是Par::Packer在草莓Perl 5版本16.2上安装得很好,并通过了所有测试。请理解,您不能在一个将运行在不同平台上的系统上构建可执行文件。这适用于每种语言,而不仅仅是Perl。您需要在与目标兼容的系统上使用Perl的工作版本,才能构建在其他地方工作的可执行文件。
https://stackoverflow.com/questions/15586781
复制相似问题