首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法编译我的perl脚本。什么是最简单的方法,使一切正常运作?

无法编译我的perl脚本。什么是最简单的方法,使一切正常运作?
EN

Stack Overflow用户
提问于 2013-03-23 12:31:03
回答 1查看 1.4K关注 0票数 1

我在编译perl脚本时遇到了很多困难。我在脚本中使用各种模块:

代码语言:javascript
复制
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还使用了以下模块:

代码语言:javascript
复制
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上没有显示,而且我没有以其他方式安装它),但是创建的文件没有工作。

..。帮助?:-)

EN

回答 1

Stack Overflow用户

发布于 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的工作版本,才能构建在其他地方工作的可执行文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15586781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档