3

我用Strawberry Perl 5.8.9.4using开发了一个应用程序wxPerl。该应用程序使用以下方式编译:

wxpar -f Crypto -F Crypto -M Filter::Crypto::Decrypt --compress=9 --gui --icon=icon.ico --lib=./lib --module=App::Order --module= wx --module=App::GUI::Main --module=App::GUI::Frame --module=App::GUI::Forms::Settings --module=App::GUI::Forms:: Settings::Signature --module=App::Task::StripAndMail --module=App::Mode::Terminal --module=App::Mode::GUI --output="bin\PDF Mailer.exe" " PDF Mailer.pl"`。

我已经到了将其部署到客户 PC 上的地步。为此,我使用使用 InnoSetup 创建的设置,它将所有必需的 DLL 复制到 system32 文件夹。我已经在我自己和另一个没有安装 Strawberry Perl 的系统上对此进行了测试。这个其他系统让我弄清楚我需要包含哪些 DLL,它们是:

  • libeay32.dll
  • mingwm10.dll
  • wxbase28u_gcc_wxp_binary_10_0.dll
  • wxmsw28u_adv_gcc_wxp_binary_10_0.dll
  • wxmsw28u_core_gcc_wxp_binary_10_0.dll

但是,我的客户安装了设置,并且在启动应用程序时,光标只是更改为加载指示器,然后返回正常。该应用程序似乎没有正确启动,也没有报告丢失的 DLL。

mingwm10.dll在失踪之前我也遇到过同样的问题。所以我认为这是一个丢失的 DLL,但我不知道在哪里寻找。

我已将系统的 PATH 修改为仅包含 system32 文件夹,以确保应用程序以应用程序文件夹中提供的 DLL 启动。我还从 system32 文件夹中删除了我的安装程序安装的所有 DLL。

我的开发机器运行的是 Windows XP Prof. SP3。客户端系统运行Windows XP Home SP3。

任何想法或指示将不胜感激。

4

1 回答 1

3

我发现了我的问题。这实际上是 Strawberry Perl 的一个错误,这里已经报告过。我决定在没有--gui,--compress标志和 Crypto 过滤器的情况下编译它。因为我遗漏了它,--gui所以它会向控制台返回一条错误消息。PAR::Heavy找不到提到的错误。根据我之前链接的消息,这是因为 PAR::Heavy 所在的路径。所以我添加--lib=C:/strawberry/perl/vendor/lib到 wxpar,重新编译,一切都像它应该的那样工作。在修复此错误之前,这应该可以解决问题。

于 2010-02-09T11:35:31.647 回答