2017-01-06 2 views
1

Я добавлю дополнительный файл, в то время как я делаю .exe-файл, используя perl (PP). Пожалуйста, смотрите мой код для создания файла .exe.Как использовать дополнительный файл в Perl, пока мы делаем 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

«Это не работает» немного коротки. Не могли бы вы добавить подробности, такие как сообщения об ошибках или поведение созданного файла exe? –

+0

он не дает никакой ошибки, когда мы делаем exe-файл, используя команду pp. моя проблема: - после создания exe-файла это не 7z.exe и его dll-файл для создания zip-файла. Может быть, мне нужно объявить путь 7z.exe и его dll или некоторые подобные. Не могли бы вы предложить мне какие-либо идеи? –

+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 

и вы должны иметь свой автономный архиватора.

+0

Я очень благодарен за полный, но используя этот модуль wh ru вы извлекаете tar-файл, затем извлекаете файл без какого-либо расширения. Вот почему я использую «7z». Я уже сделал это с помощью этого модуля, но это не соответствует моему требованию. –

+0

Что вы подразумеваете под «без какого-либо расширения»? –

+0

Вы хотите, чтобы вы также извлекали файлы с тем же скриптом? –

Смежные вопросы