2016-03-08 42 views
-1

我是Perl的起始者。 我製作了我的Perl腳本,我想將一個Perl腳本製作成一個自包含的可執行文件。要創建.exe文件,我使用了PAR::Packer。創建和執行.exe文件後,我得到這樣的錯誤:Perl .exe文件:無法在未定義值上調用方法「編碼​​」

Can't call method "encode" on an undefined value at Win32/Unicode/Util.pm line 36, <DATA> line 2125. 
    Compilation failed in require at Win32/Unicode.pm line 14, <DATA> line 2125. 
    BEGIN failed--compilation aborted at Win32/Unicode.pm line 14, <DATA> line 2125. 
    Compilation failed in require at if.pm line 13, <DATA> line 2125. 
    BEGIN failed--compilation aborted at App/Weryfikacja/Term.pm line 7, <DATA> line 2125. 
    Compilation failed in require at App/Weryfikacja/Log.pm line 8, <DATA> line 2125. 
    BEGIN failed--compilation aborted at App/Weryfikacja/Log.pm line 8, <DATA> line 2125. 
    Compilation failed in require at App/Weryfikacja.pm line 17, <DATA> line 2125. 
    BEGIN failed--compilation aborted at App/Weryfikacja.pm line 17, <DATA> line 2125. 
    Compilation failed in require at script/diagfull.pl line 54, <DATA> line 2125. 
    BEGIN failed--compilation aborted at script/diagfull.pl line 54, <DATA> line 2125. 

我想注意到,Perl腳本運行良好。什麼會導致我的.exe文件不起作用?也許我需要添加模塊或類似的東西到.exe文件?

回答

1

如果您可以提供詳細說明如何使用PAR :: Packer中的pp實用程序,則其他人可能更容易提供幫助。沒有這些細節,我會假設你做了類似「pp -o test.exe test.pl」的東西。

我建議的第一件事就是使用-c和/或-x選項。這些選項用於「確定附加的運行時依賴性」。請記住,這些是區分大小寫的選項。

如果這樣不能解決所有問題,則可能需要使用其他選項。查看pp實用程序的文檔以獲取有關其他選項的更多詳細信息。

此外,我注意到你添加了「mojo」標籤到你的問題,所以我假設你的代碼使用Mojolicious。如果是這樣的話,你可能想看看這個blog有關使用Mojolicious創建獨立應用程序的幫助。

+0

正如你寫的,我用「pp-o test.exe test.pl」 –

+0

謝謝dasgar的幫助。我用「pp -c test.pl」,它工作:) –

相關問題