使用 Perl Par Packer 创建带有自定义图标的 exe

Bal*_*mar 4 perl

我正在尝试使用自定义图标从 Perl 脚本创建 exe 文件。我已尝试使用这些命令

pp -i "myicon.ico" -o file.exe file.pl
pp --icon "myicon.ico" -o file.exe file.pl
pp --icon "fullpath\myicon.ico" -o file.exe file.pl
Run Code Online (Sandbox Code Playgroud)

但无法解决问题。任何建议将不胜感激。谢谢。

更新: 对于此代码 pp --gui --icon myicon.ico -o out.exe file.pl。我有一个错误

Unknown option: icon
Binary 'myicon.ico' sure doesn't smell like perl source!
Can't locate method "maybe_command" via package "MM"
Run Code Online (Sandbox Code Playgroud)

小智 5

选项--icon--info已从最新版本的 PAR::Packer 中删除。根据该模块作者在 CPAN 错误跟踪器上的评论,这些选项有时会损坏文件,并且由于它们委托给 Win32::Exe 无论如何,他现在希望人们直接使用 Win32::Exe。1

这是一个方便的单行代码,用于删除默认的骆驼图标并从 .ico 文件添加您自己的图标。正如 Hariboo 所指出的,您的图标文件必须与原始骆驼图标的属性匹配,即 32x32 像素。

perl -e "use Win32::Exe; $exe = Win32::Exe->new('myapp.exe'); $exe->set_single_group_icon('myicon.ico'); $exe->write;"
Run Code Online (Sandbox Code Playgroud)

有关其他与图标相关的 API 调用,请参阅Win32::Exe 的 perldoc 。exe_update.batWin32::Exe 附带有一个脚本,但一些用户报告了损坏问题(例如在另一个问题中)。

如果您仍然收到损坏的 EXE,请尝试降级您的 Archive::Zip,然后重建 PAR。

force install NEDKONZ/Archive-Zip-1.08.tar.gz
force install PAR 
Run Code Online (Sandbox Code Playgroud)

我有一个单独的便携式 Strawberry 安装,用于使用 PAR::Packer 打包和修改 EXE。使用便携式时请务必传递给-X Portable.pm2pp