PerlApp-generate-exe не может загрузить пакеты
PerlApp генерирует Perl-скрипт для исполняемого файла. У меня проблема с использованием PerlApp. Вот шаги:
- Сгенерируйте Perl-скрипт (e.pl) со следующими 2 строками require Date::Manip; требуют Дата:: Manip:: DM6;
- perlapp e.pl --add Date:: Manip --add Date:: Manip:: DM6
- e.exe генерирует следующие ошибки: c:_test>e.exe МОДУЛЬ ЗАГРУЗКИ ОШИБКИ: Date::Manip::DM6 в строке /Date/Manip.pm 35.
2 ответа
Вам нужно добавить больше, чем просто Date::Manip::DM6:
perlapp --add Date::Manip::** e.pl
Подстановочные знаки указывают на то, что все подмодули в пространстве имен Date:: Manip должны быть добавлены, включая некоторые, которые находятся более чем на 1 уровень ниже. Ошибка в том, что DM6 зависит от этих других подмодулей, некоторые из которых кажутся неявными.
Также вам не нужно require Date::Manip::DM6
поскольку это не то, как вы должны использовать модуль. Версия 6 используется автоматически в зависимости от вашей версии perl, которая включается в ваш скомпилированный exe.
На всякий случай, если вы страдаете от XY Problem
:
Учитывая использование pp
вместо PerlApp
, Следующее работает просто отлично:
use strict;
use warnings;
use Date::Manip;
print "Hello World\n";
И тогда упаковка:
pp hello_date.pl