最近与诺恩公司合作进行miRay项目开发与应用。以前我们写的Perl程序,除了CGI类型的网络程序外,都是只能在安装过Perl程序包后才能在命令行中运行脚本程序。但公司希望:(1)miRay能够直接运行,无需安装Perl等额外程序包;(2)图形用户界面。对于前者,我们采用了Perl Archive Toolkit(PAR)和PAR Packager(PAR::Packer包)解决。对于后者,我本来打算用Perl自己的不依赖其它软件的Perl/Tk包解决。不过,负责此项目的娟娟同学采用的Tkx包,需要系统先要安装Tcl/Tk,再安装Tkx包。娟娟同学的机器用的是ActivePerl,安装ActiveTcl及Tkx一帆风顺。我自己的系统是如下图,安装的是Strawberry Perl,版本v5.20.2。
最新的ActiveTcl8.6.4.0.298892-win32-x86_64-threaded.exe虽然能安装成功,但cpan安装Tkx时总是返回在tcl86.dll中“无法定位程序输入点inflateGetHeader”。各种搜索与尝试,始终不能解决。最后,卸载ActiveTcl8.6.4.0,安装上一个版本,ActiveTcl8.5.18.0(ActiveTcl8.5.18.0.298892-win32-x86_64-threaded),cpan成功安装Tkx。测试miRay项目,一切OK。经验教训:退一步海阔天空!