在我们制作exe时如何在Perl中使用其他文件

时间:2017-01-06 06:39:40

标签: perl

我使用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外面

1 个答案:

答案 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

你应该拥有独立的归档器。