免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8052 | 回复: 8

Windows环境下用PerlApp将代码打包成可执行程序教程 [复制链接]

论坛徽章:
0
发表于 2012-07-25 17:17 |显示全部楼层
本帖最后由 iamlimeng 于 2013-03-21 09:34 编辑

在论坛陆续发过几个已经打包好的可执行程序,有很多坛友问Perl代码如何打包,现在总结一下我自己的经验,写个简短的教程(Windows平台),希望对大家有帮助:

将Perl打包成可执行程序,有几个可用的打包软件:
1、Perl2Exe,这个软件出现较早,使用也非常简单,但功能相对有限,一般简单的代码用它打包没问题,引用了较多模块的代码,特别是有GUI界面的代码,用它就难实现或无法打包;
2、Cava Packager (http://www.cava.co.uk),这个软件功能比较强大,可以将代码打包成各种形式,比如直接打包成安装包,在客户机上进行安装,或者将主程序和模块分离;
3、ActiveState Perl Dev Kit,非常强大的打包程序,跟ActivePerl协作完美,也可以打包成很多种形式的应用程序。

本教程仅限于讲解在Windows环境下用PerlApp将代码打包成EXE文件,Linux环境大同小异。

ActiveState Perl Dev Kit下载地址:
http://www.activestate.com/perl-dev-kit/downloads

启动PerlAPP,界面的Main标签如下图:
main.jpg
这里主要是指定代码及工作目录。

Files标签:
files1.jpg
Script:程序会自动扫描代码中引用的模块,这下面的模块即为代码中显式引用的模块。
技巧1:在代码的显示界面中有中文的情况下,应该在代码中显式引用Encode::CN,或者在Added modules中添加该模块,否则中文可能不能正确显示。
files2.jpg
技巧2:在代码中若有需要引用的数据或图标,可以使用Bound files将它打包进可执行程序,这样,在程序运行时,可以直接使用这些数据或图标,这样可以避免泄露相关数据。比如要显示Windows程序左上角的图标,就使用这种方法实现;
技巧3:Icon sources用来将图标文件打包进程序,这个图标是指Windows资源管理器中可执行程序的图标,可以用自己的个性图标来标识程序,跟技巧2中的图标不是一码事。
具体操作:通过右键点相关命令来实现。

Size标签:
size.jpg
如果在已经安装有Perl的环境运行程序,又希望打包后的文件体积小,可以勾选前两项;三项都不选,就打包成完全脱离Perl环境的可执行程序。

Option 1标签:
option1.jpg
Clean up temporary files when the executable terminates,选定用来在程序运行结束后清理临时文件,包括打包进程序的数据和图标,位置:C:\Documents and Settings\**your name**\Local Settings\Temp\

Option 2标签:
option2.jpg
技巧1:Use the in-memory dynamic DLL-loader at runtime,选定它,在程序运行时,会将DLL文件释放到内存,这样可以在一定程度上避免泄露DLL文件,不选,会释放到临时文件夹,在程序结束前,这些临时文件是可以直接被复制出来的;
技巧2:Hide console,如果是GUI程序,应该选定它,这样就不会再出现CMD界面;如果就是通过CMD显示程序的输出,那就不勾选。

Version标签:根据自己的喜好填。
version.jpg

Output标签:设置好各选项后,按Make Executable即生成可执行程序,这个标签是打包的状态信息。
output.jpg

论坛徽章:
0
发表于 2012-07-25 18:23 |显示全部楼层
要$的。
有没有free的

论坛徽章:
1
未羊
日期:2014-09-08 22:47:27
发表于 2012-07-25 19:13 |显示全部楼层
好教程,记号一个。

论坛徽章:
0
发表于 2012-07-25 20:20 |显示全部楼层
暂时用不了,先学习了!(*^__^*) 嘻嘻……!

论坛徽章:
3
15-16赛季CBA联赛之同曦
日期:2016-04-02 22:00:3915-16赛季CBA联赛之江苏
日期:2016-04-07 12:09:0015-16赛季CBA联赛之天津
日期:2016-05-04 01:20:19
发表于 2012-07-26 01:05 |显示全部楼层
学习学习,楼主辛苦了~~

论坛徽章:
0
发表于 2012-07-26 10:43 |显示全部楼层
顺便问一句.如果不想被人看, linux下怎么打包

论坛徽章:
0
发表于 2012-07-26 11:31 |显示全部楼层
回复 6# 蚊仔perlperl


    perlcc

论坛徽章:
0
发表于 2012-07-26 13:37 |显示全部楼层
PDK有Linux版

论坛徽章:
0
发表于 2013-03-12 20:04 |显示全部楼层
免费的推荐哪些呢?大侠
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP