2009-12-22 49 views
1

這可能是一個新手問題,因爲我剛開始使用pp。我閱讀了CPAN上的文檔,並試圖爲我的應用程序創建一個可執行文件。我在Windows XP上使用Camelbox和Tk,PAR :: Packager版本0.991(PAR版本0.994)。爲了確保pp工作,我使用Tk創建了一個非常簡單的hello_world.pl,編譯成一個.exe文件並運行它。到現在爲止還挺好。爲什麼我的Perl PAR應用程序立即死亡?

當我在我的應用程序上使用pp -o out.exe my_program.pl並嘗試運行out.exe時,會出現一個控制檯窗口,並在死後不久沒有錯誤消息。問題是我不知道從哪裏開始尋找解決方案,因爲沒有消息。我試圖用tkpp(pp爲gui)來做同樣的事情,因爲它寫入了一個日誌文件 - 但效果是一樣的,日誌文件是空的。有人可以幫幫我嗎?

回答

2
  1. 升級模塊:: ScanDeps到最新版本(或0.95),然後重試從命令提示符控制檯窗口編程

  2. 運行,複製錯誤信息,並將其發送到PAR mailing listPAR::Packer bug tracker

+0

謝謝你的回覆。 CPAN告訴我Module :: ScanDeps是最新的。但是你的第二個提示終於給了我一直在尋找的錯誤信息。我自己的模塊之一沒有被包含到可執行文件中。我必須分別指定每個模塊嗎?我「使用」它們,它們與我試圖打包的程序位於同一目錄中。 – 2009-12-22 13:47:44

+0

如果您在沒有變量的情況下使用「使用」或「需要」,應自動選擇您的模塊。如果你使用類似「eval」的東西使用$ var「」,你需要添加'-M'模塊。總的來說,很難說沒有看到消息來源。 – 2009-12-22 15:52:05

+0

Alexandr,我知道問題可能是什麼。我使用CPAN FindBin來檢測本地目錄和「使用lib」它創建的路徑。這就像使用「使用$ var」 - 謝謝! – 2009-12-23 06:36:27

1

如果你沒有得到一個錯誤,你怎麼知道它死了?

您的程序可能工作得很好,但控制檯窗口關閉後才能看到輸出。

也許嘗試打印hello world後暫停?

print "Hello, World!"; 
<>; # pause for input 
+0

謝謝您的建議。使用一個很小的hello world程序,它會等待輸入,開始和停止沒有錯誤。然而我的應用程序有一個Tk gui來打開一個對話框。當用PP包裝它什麼都不做。至少我現在知道顯示了一條錯誤消息 - 控制檯關閉太快而無法讀取它。我怎樣才能防止控制檯關閉? – 2009-12-22 12:08:36

+0

@Nele Kosog:從命令提示符下運行程序(而不是從Explorer中雙擊它)。 – 2009-12-22 14:05:23

+0

謝謝你,邁克爾 - 有時這很明顯,我只是想念它。 – 2009-12-23 06:31:39

相關問題