我使用perl(PP)制作.exe文件时会添加一些额外的文件。请参阅我的下面的代码来制作.exe文件。
pp -gui -a 7z.exe -a 7z.dll -o gui_curl.exe gui_curl.pl
在.exe版本中添加这两个文件,但它不起作用。我不知道为什么?
我在我的代码中使用了这两个文件,如下所示: -
system("7z.exe a $current_dir/$file_name.tar $current_dir");
system("7z.exe a $current_dir/$file_name.gz $current_dir/$file_name.tar");
请建议我如何使用此文件。我不想把这个文件放在exe外面
答案 0 :(得分:1)
这是我建议的解决方案。它不使用7zip,我不知道如何在pp内完成工作。
它取决于Archive::Tar。
#!/usr/bin/perl
use strict;
use warnings;
use Cwd;
use Archive::Tar;
my $current_dir = getcwd();
my $file_name = 'archive';
my @files_to_archive;
opendir(DIR, $current_dir) or die $!;
while (my $file = readdir(DIR)) {
next if ($file =~ m/^\./);
push @files_to_archive, $file;
}
closedir(DIR);
my $tar = Archive::Tar->new;
$tar->add_files(@files_to_archive);
$tar->write("$current_dir/$file_name.tgz", COMPRESS_GZIP);
my $extract_dir = '/tmp/test_arc';
mkdir $extract_dir unless (-d $extract_dir );
chdir $extract_dir;
$tar->extract('archive.tar');
然后,你运行
pp -o zipper.exe archive.pl -M Archive::Tar
你应该拥有独立的归档器。