Я знаю, что есть два других вопроса, которые касаются одного и того же здесь, но мой возник из-за того, что я действительно пробовал предложения там, и в надежде, что с тех пор есть какие-то другие варианты, которые сработали для людей.
Настройка такова: у меня есть приложение с несколькими модулями, которым я хочу поделиться с кем-то, кто работает на машине Windows с установленным дистрибутивом Strawberry Perl.
Структура его примерно такая:
PerlApp
lib
Base
Base.pm
Gui.pm
Db
Db.pm
records.db
Parser
Parser.pm
Utils
Utils.pm
PerlApp.pl
Config.txt
Все это имеет две точки входа. Я могу запустить его либо через интерфейс строки cmd со сценарием PerlApp.pl, либо запустить файл Gui.pm, который содержит для него интерфейс Wx.
Я запускаю Strawberry Perl с несколькими модулями, установленными из CPAN, которые используются этой программой. Я пытался использовать Cava Packager, но, к сожалению, он не поддерживает версию Perl, с которой я это разработал.
Я пробовал pp, но исполняемый файл, полученный в результате упаковки сценария cmd, приводит к различным ошибкам. Я проконсультировался с документацией, но не могу понять, как использовать этот модуль для упаковки полного дерева каталогов и поддерживается ли это вообще. (синдром документации телефонной книги)
Я попытался
pp -o app.exe PerlApp.pl
Ошибки:
The locale codeset (cp1252) isn't one that perl can decode, stopped at Encode/Locale.pm line 94
Compilation failed in require at LWP/UserAgent.pm line 1000
Compilation failed in require at lib/Base/Base.pm line 9
Последнее решение — упаковать все необходимые файлы и выяснить, какие модули CPAN необходимо установить на внешний компьютер, чтобы он заработал, и, в конечном итоге, попросить пользователя установить их вручную самостоятельно.
pp
это, вероятно, путь. Если у вас возникли проблемы с его использованием, вероятно, было бы лучше показать нам сообщения об ошибках и т. д. — в идеале полный, минимальный и работоспособный пример, демонстрирующий вашу проблему. Тогда мы можем попытаться помочь вам в этом. Мы не можем помочь вам, указав наMagic::FairyWand
модуль v0.42, который решит все ваши проблемы без дальнейших действий. усилий, потому что его не существует. - person amon   schedule 06.02.2014pp
, чтобы упаковать эту структуру каталогов —some command
не сработало.» У меня нет необходимых знаний, чтобы ответить на этот вопрос, но вы можете облегчить задачу тем, кто умеет. - person amon   schedule 06.02.2014