最近上DSLINK的论坛,发现很多人对EDIY的RomeName不能自动更新不满
正好遇见一个人自己制作了RomeName到论坛上,为了自动化更新的目的,我决定写个可更新RomeName的软件。
原理很简单,把本地文件的版本和服务器上的版本做对比,如果两个版本不一样,就从服务器上下载最新的版本(因为服务器上只有最新的版本)。
原理清楚了,制作就很简单了。
我对C不熟悉,也不喜欢C++,而且我知道用它们来写可能会遇见很不麻烦,所以我还是用我最擅长的PERL来写好了
现在的问题就是以往的PERL的脚本都需要由PERL的解释器来完成程序的运行,就如同你要运行个JAVA程序必须要安装一个JAVA虚拟机一样。
我不可能让每个人都去装个PERL的解释器来来运行我的脚本吧,所以我选择打包成EXE文件来发布
这里我有几个可选的编译器。比如ActiveState公司的Perl.Dev.Kit ,此外还有PERL2EXE等等。
程序很快就完成了。
我先试验了下PERL2EXE的编译,一个十几K的文件被编译成1.3M,主要原因是我用了几个模块,虽然功能强大(但被我用在这里真是杀鸡焉用宰牛刀了),但体积也不小,而且还有一个PERL的DLL连接库有300多K,不过都集合在一个文件里了,所以1.3M也就不足为奇了。
在用Perl.Dev.Kit编译结果更大,足有1.8M。
最后在用EXE压缩工具对其压缩,PERL2EXE的不能运行,Perl.Dev.Kit的压缩的效果也不明显。最后还是用PERL2EXE的文件来作为发布版
总体来说PERL2EXE的压缩功力是相当强的,但可惜只能在命令行下运行,Perl.Dev.Kit就有图形化界面了,配置的选项也比较多,比较适合专业级的打包吧!