wxPerl和PAR::Packer和缺少的依赖项

wxPerl和PAR::Packer和缺少的依赖项,perl,wxperl,Perl,Wxperl,我的应用程序是用wxPerl编写的,我用PAR::Packer编写了一个可执行文件。它在我的机器(macOS和Windows)上运行良好,但在未安装Perl/wxPerl的机器上运行不好;事实上,如果在运行可执行文件之前将保存Perl安装的目录的名称更改为perl5X或StrawberryX,则它在我的机器上也不起作用 在macOS上,我可以从终端获取错误消息: Can't load '/var/folders/[...]/ca54e36a.bundle' for module Wx: dlo

我的应用程序是用wxPerl编写的,我用
PAR::Packer
编写了一个可执行文件。它在我的机器(macOS和Windows)上运行良好,但在未安装Perl/wxPerl的机器上运行不好;事实上,如果在运行可执行文件之前将保存Perl安装的目录的名称更改为
perl5X
StrawberryX
,则它在我的机器上也不起作用

在macOS上,我可以从终端获取错误消息:

Can't load '/var/folders/[...]/ca54e36a.bundle' for module Wx: 
dlopen(/var/folders/[...]/ca54e36a.bundle, 
1): Library not loaded: /[...]/Alien/wxWidgets/osx_cocoa_3_0_2_uni/lib/libwx_osx_cocoau_core-3.0.0.2.0.dylib
    Referenced from: /var/folders/[...]/libwx_osx_cocoau_adv-3.0.dylib
  Reason: image not found at <embedded>/DynaLoader.pm line 197.
 at <embedded>/PAR/Heavy.pm line 140.
运行可执行文件时,
-a
中包含的数据文件会被解压到正确的位置,因此它可以工作到目前为止。但后来它停止了

那么,我错过了什么

--编辑1

为清晰起见进行了编辑

--编辑2

我提供了一个最小的(非)工作示例:

use warnings;
use strict;

package MyFrame;
use Wx::Perl::Packager;
use Wx;
use base 'Wx::Frame';

sub new {
    my $class = shift;
    my $self
        = $class->SUPER::new( undef, -1, 'Test', [ -1, -1 ], [ 250, 150 ], );
    return $self;
}
1;

package MyApp;
use base 'Wx::App';

sub OnInit {
    my ($self) = @_;
    my $frame = MyFrame->new();
    $frame->Show();
}
1;

package main;
MyApp->new->MainLoop;
然后我像这样运行
pp

#!/bin/bash

pp -x -c -o minimal.app \
   -l /Users/Patrik/perl5/perlbrew/perls/perl-5.30.0/lib/site_perl/5.30.0/darwin-2level/Alien/wxWidgets/osx_cocoa_3_0_2_uni/lib/libwx_osx_cocoau_core-3.0.0.2.0.dylib \
   minimal.pl
但是在“隐藏”Perl安装并运行我得到的应用程序之后

...
Library not loaded: /Users/Patrik/perl5/perlbrew/perls/perl-5.30.0/lib/site_perl/5.30.0/darwin-2level/Alien/wxWidgets/osx_cocoa_3_0_2_uni/lib/libwx_osx_cocoau_core-3.0.0.2.0.dylib
...

“如果我更改保存Perl安装的目录的名称,它在我的机器上也不起作用”如何/何时更改目录的名称?我在生成可执行文件后更改名称,然后再运行它。对不起,有点不清楚。关键是,可执行文件不能再引用Perl安装。对于Windows,您可以在以下位置查看我的答案:@Patrik Maybe try ask at GitHub?我在Windows上尝试了您的示例代码,并附带了一个最小的
wxpar-o test.exe test.pl
。一切似乎都很好——而且perl树对可执行文件是隐藏的。
...
Library not loaded: /Users/Patrik/perl5/perlbrew/perls/perl-5.30.0/lib/site_perl/5.30.0/darwin-2level/Alien/wxWidgets/osx_cocoa_3_0_2_uni/lib/libwx_osx_cocoau_core-3.0.0.2.0.dylib
...