3

Strawberry Perl 5.8.9.4を使用してアプリケーションを開発しました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に導入するところまで来ました。このために、必要なすべての DLL を system32 フォルダーにコピーする InnoSetup で作成されたセットアップを使用します。これは、自分自身と、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 でアプリケーションが開始されるようにしました。また、セットアップによってインストールされたすべての DLL を system32 フォルダーから削除しました。

私の開発マシンは、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 に答える