perl - 无法编译我的 perl 脚本。让一切正常工作的最简单方法是什么?

我在编译我的 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 perl 而不是 ActivePerl ...我只想能够编译代码 :-)

尝试使用 perl2EXE 它说它找不到一些模块(尽管每个模块都是由 ppm 安装的)。我尝试使用 Perl Packager (PAR::Packer) 在 linux 上进行编译(因为它没有显示在 ppm 上,而且我无法以任何其他方式安装它)但是创建的文件不起作用。

... 帮助? :-)

最佳答案

你知道所有perl2exe是创建一个包含所有源文件的 perl 解释器可执行文件的副本(可能处于编译状态,我不确定)?
我建议您使用 PAR package 相反,它将构建一个包含所有可以从 perl 运行的必要源的单个存档文件。命令行。
如果您绝对必须有一个可执行镜像,请查看 PAR::Packer 反而。

更新

I actually want this program to run on computers without perl installed on them. I understood I have to compile my code for this to work. PAR package doesn't do that, right?


不,您不必编译 Perl 源代码即可将其放入包中。这样做会适得其反,因为加载时间往往会由于额外的 ByteLoader 而增加。解释生成的解析树所必需的模块。

I actually need help installing and using PAR::Packer since I couldn't install it on ActivePerl on windows and the executable it made for me on linux didn't work on windows 64-bit. So I'm doing something wrong


我没有 ActivePerl 的实例,但是 Par::Packer在 Strawberry Perl 5 16.2 版上安装良好并通过所有测试。请理解,您无法在一个系统上构建将在不同平台上运行的可执行文件。这适用于每种语言,而不仅仅是 Perl。您需要在与您的目标兼容的系统上使用 Perl 的工作版本,以便能够构建可以在其他地方工作的可执行文件。

https://stackoverflow.com/questions/15586781/

相关文章:

python - python err : Local variable referenced be

xcode - Intel C++编译器,无法在OS X上打开stdarg.h

perl - "error: variable length array of non-POD el

compiler-construction - 未定义对ruserok错误的引用

android - 如何解决java.lang.NoClassDefFoundError

android - Android Studio 0.2.1错误

visual-c++ - 如何针对VES2008编译Greta?

vba - 具有多个条件的Select Case函数不循环

android - 如何解决Java Eclipse中的 “The hierarchy of the

compiler-errors - 错误: no newline at end of file [-