Преобразование скрипта Perl в EXE с помощью Par Packer в Perl

Я преобразовал исполняемый файл с помощью Perl Par Packer в Windows 7. Но когда я запускаю файл, он показывает какую-то ошибку.

Я думаю, что мне также нужно добавить модуль, но я не уверен. Я в основном использую pp -o sample.exe sample.pl

Я использую ActivePerl 5.16.

Введите здесь описание изображения

Он отлично работает как Perl-скрипт, но после преобразования в EXE-файл завершается с ошибкой.


person Balakumar    schedule 31.08.2013    source источник
comment
Любые альтернативные решения для запуска Perl-скрипта в exe   -  person Balakumar    schedule 01.09.2013
comment
Существует ли Mojo\entries.txt? Он включен в ваш пакет или относится к файлу? Я предполагаю, что PAR::Packer включил только необходимые вещи Perl в ваш .exe   -  person Demnogonis    schedule 01.09.2013


Ответы (3)


Кажется, что некоторые необходимые модули (ByteStreams.pm, Collection.pm, DOM.pm) отсутствуют в вашем пакете perl.

Попробуйте загрузить и установить их с помощью ppm (менеджер пакетов perl).
1. Нажмите кнопку Пуск , введите perl
2. Нажмите на логотип ppm
3. Найдите имя модуля в окне поиска
4. Установить.

Если авторизация не удалась, попробуйте установить через командную строку.

  1. открыть команд.
  2. введите: ppm install 'имя модуля'
  3. пересоберите свой exe и запустите.
person BioDeveloper    schedule 02.09.2013
comment
я установил модули, используя описанный выше метод и cpan Mojo::DOM и т. д., но все равно не работает - person Balakumar; 13.09.2013

Эта проблема решается путем добавления модуля Mojo в то же место, что и автономный исполняемый файл.

person Balakumar    schedule 14.11.2013
comment
Вы уверены, что все необходимые модули были на вашем пути в то время, когда вы запускали «pp»? Это может быть просто проблема пути. - person Bulrush; 10.05.2016

Мне нравится Perl, а также C/C++. Чтобы получить лучшее из обоих, я написал проект github для решения этой проблемы.

см.: https://github.com/tlqtangok/perlcpp

краткий пример здесь:

P_eval("$a=2;$a=$a**10;"); 
Int("a") ;   // a= 1024  

P_eval("$a=qq(abc);

P_eval("@arr=(0..9);"; 
P_arr_Int_i("arr", 8 );  // => 8
person tlqtangok    schedule 09.03.2017