作者knep ((cynical.))
看板perl
标题Re: [问题] 有关PAR在WINXP上执行的问题
时间Mon Sep 3 06:43:55 2007
※ 引述《sxx (hurry up!!)》之铭言:
: 大家好,第一次在这里问问题请大家多多指教
: 今天在WINXP系统上灌了active perl 5.8.8
: 可以执行一些perl的程式没有问题
: 之後使用了PPM灌了PAR模组(所有PAR相关的都灌了,PAR的版本是0.976)
最近刚好有用到 PAR, 以下提供一点自己的经验.
首先是
ActivePerl 版本问题.
若要用 Par-Packer, 请一定要安装 ActivePerl 5.8.8
rev822 以前 的版本.
为什麽呢? 查了 mailing list 的结果是因为 rev822 加入了
Perl 5.8 的 maintenance branch, (也就是未来会变成 Perl 5.9 的东西)
所以 SvIV() macro 会呼叫 Perl_sv_2iv_flags() function.
(
http://www.nntp.perl.org/group/perl.par/2007/08/msg3193.html )
现在的 Par-Packer 都不能用了.
幸好安装旧版就可以解决.
再来是
PAR 版本太旧的问题, 现在不知道解决了没有, 不过之前我有找到
一个 repository, 提供编给 5.8.8 的 PPM, 你可以用以下的指令安装:
ppm install
http://theoryx5.uwinnipeg.ca/ppms/PAR-Packer-588.ppd
: 目的是想试着将test.pl转成test.exe
: 输入指令:(在命令提示字元下)
: C:\perl>perl -MPAR -test.exe test.pl
: 但是并没有得到想要的结果
: 又尝试输入:
: C:\perl>pp -o test.exe test.pl
: 结果出现:
: 'pp'不是内部或外部命令、可执行的程式或批次档
: 给我的感觉就是灌了好像没灌= ="
这是路径没有设定好的关系, 你可以直接使用绝对路径执行:
c:\perl\site\bin\pp test.pl -o test.exe
: 我也尝试过用perl makefile.pl, nmake, nmake test, nmake install的程序安装
: 但结果是一样的
: 希望大家能给我一点意见,谢谢!
自己编译小弟倒是没试过,
当初选定 Perl on Win32 的目标就是尽量不做太琐碎的事. Orz
最後是
Par-Packer 的 -a 参数. (加入档案)
可以透过 $ENV{PAR_TEMP} 这个路径去存取. 当初不知道还以为档案加到不见. XD
另外借这文章想顺便请教一个
PAR + Gtk2 的问题.. XDDD
因为 Gtk2 实在比 Win32::GUI 方便太多了阿, 光是能用 Glade 就赢两倍了.
但根据这篇 Re: Using PAR with gtk2 on MS Windows
(
http://mail.gnome.org/archives/gtk-perl-list/2005-April/msg00187.html )
PAR 在包模组的时候并不会管系统上的 GTK 环境, 因此没办法 "只靠" PAR
达成 Perl Gtk2 程式的可携, 我找到的解决方法是透过 NSIS,
其实是 PortableApps.com 的
ApplicationPortableTemplate.nsi
(
http://portableapps.com/node/6709 ) 来产生可携式的 Gtk2 环境.
但用 PAR 包出来的模组似乎还是有缺, (使用 -M Gtk2 -M Gtk2::GladeXML 参数 ).
用 Perl2Exe 包出来的倒是可以用...(可是我不喜欢商业软体!)
不知道有没有办法列出一个程式会用到的档案和所有模组呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.162.114.80
1F:推 sxx:谢谢!不过关於路径的部分我先试过还是不行 09/03 08:37
2F:→ sxx:整个perl资料夹下都找不到pp执行档,版本问题晚上再试试^^ 09/03 08:38
3F:推 LiloHuang:用旧版的的确是可以 所以我一直没有升级 ~_~" 09/03 09:29
4F:推 sxx:用旧版的就可以了 谢谢两位! 09/03 10:19