第一节 PerlApp和PerlSvc编译方法
PerlApp和PerlSvc是ActiveState 公司开发的,它属于 Active Perl Dev Kit(PDK)产品。本编译方法只适合于Windows2000上运行,其它系统均无法正常使用,编译程序必须是标准Perl和ActivePerl。
PDK下载地址:http://ftp.tanshuai.net/pub/ ftp://ftp.tanshuai.net/pub/
PerlApp和PerlSvc,前者是标准的应用程序,后者是Windows2000的服务程序(类似与IIS,一开机就启动的服务程序,而且无法中断它的运行)。他们有两种运作模式:依靠(Dependent)和独立(Freestanding),“依靠”模式程序运行的系统上必须有Perl解析器和相关模块,这样的程序相对较小;“独立”模式,Perl解析器等相关模块都会完全嵌入在程序之中,这样的程序在任何Windows2000操作系统上都可以顺利运行,而不需要额外的支持,但是程序相对较大。
使用方法:
标准使用方法(“依靠”模式):
perlapp <脚本名>
这样程序就会创建一个以脚本名命名的可执行文件<脚本名.exe>
“独立”模式:
perlapp(或者perlsvc) –f <程序名>
定义输出可执行文件名:
perlapp(或者perlsvc) –e=tanshuai.exe test.pl
它将会把test.pl文件输出的可执行文件名改为“tanshuai.exe”。
设置程序属性:
perlapp(或者perlsvc) -i=<类表> <程序名>
类表名 目标项目
Filenumber 文件号码
Productnumber 产品号码
Productname 产品名称
Legaltrademarks 合法商标
Filedescription 文件说明
Originalfilename 原文件名
Fileversion 文件版本
Comments 注解
Productversion 产品版本
Companyname 公司名称
Internalname 内部名称
Legalcopyright 版权
这个时候有些人可能不大明白,这个是干什么用的。如果你曾经编写过Win32程序,那就会知道,它是Windows程序的版本说明(如图1)。
图1 Perl.exe文件的版本说明
名称与数值用“;”分开。而且所有项目值都需小写。
清理PerlCtrl 的DLL:
perlapp(或者perlsvc) –c <程序名>
添加模块:
perl(或者perlsvc) –a=<列表>
如:perlapp tanshuai.pl –a=IO:Socket;XML::Parser;Tanshuai::Http;MP3;
这样模块IO:Socket,XML::Parser,Tanshuai::Http和MP3就被置入程序内。
Perl图形界面:
perlapp(或者perlsvc) –g <程序名>
如果你的程序非命令行或者CGI,是T/K图形界面的话,就需要采取这个命令。
排除 Perl56.dll:
perlapp(或者perlsvc) –x <程序名>
Perl56.dll是PerlApp执行的关键,但是如果你不希望他和你的程序在一起,你可以把它排除,另行安置,但是主意,一定要保证它的存在否则就无法正确运行
添加额外文件:
perlapp(或者perlsvc) –b=<文件列表> <程序名>
如果你希望在程序内部打开文件,请使用这个命令。
如:open(FILE,“./PerlAPP.TXT“);@FILE=
这样就必须打开“PerlAPP.TXT“文件,但是你如果把它置入程序,它将会在内存中打开。(无法写入)
报告嵌入模块错误:
perlapp(或者perlsvc) -r <程序名>
一些模块无法嵌入,使用该命令可以得出相关信息。
输出详细信息:
perlapp(或者perlsvc) <程序名> -v
如:perlapp tanshuai.pl –v
输出:
Using myScript.pl for script name
Input script name: tanshuai.pl
Output exe name: tanshuai.exe
Exe Mode: Perl Dependent
Creating dependent executable
解释:PerlApp 和PerlSvc无法在Windows95/98/ME PerlApp使用的部分Win32 API函数未被支持。
上一页 下一页






