2017-01-06 6 views
1

perl(PP)を使用して.exeファイルを作成する間に余分なファイルを追加します。 .exeファイルを作るための私の下のコードを見てください。exeを作成中にPerlで追加ファイルを使用する方法

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

ppコマンドを使用してexeファイルを作成すると、エラーは発生しません。私の問題は次のとおりです。 - exeファイルを作成した後、7z.exeとそのzipファイルのdllファイルが作成されません。私は7z.exeとそのDLLまたはいくつかのようなパスを宣言する必要があります。 –

+0

David Verdinがこの問題について私に助けてくれますか? –

答えて

1

これは私の提案する解決策です。私はpp内で作業する方法がわからない7zipを使用していません

これは代わりに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

私は非常に感謝していますが、あなたはtarファイルを抽出して、拡張子を付けずにファイルを抽出します。それが私が "7z"を使う理由です。私はすでにこのモジュールでやっていますが、私の要求を満たしていません。 –

+0

「拡張子なし」を意味しますか? –

+0

同じスクリプトを使用してファイルを抽出することを意味しますか? –

関連する問題