Как я могу исправить «Выполнение -e прервано из-за ошибок компиляции» в Makefile модуля Perl? - PullRequest
3 голосов
/ 23 февраля 2010

Я на Windows использую Strawberry Perl . Я запускаю perl Makefile.pl для модуля Кодирования Баквальтера, который работает отлично. Когда я запускаю make, он говорит

Выполнение -e прервано из-за ошибок компиляции

Что такое -e? В каком файле я могу исправить ошибку? Очевидно, в строке 1 отсутствует фигурная скобка, но я не знаю, в каком файле есть эта фигурная скобка, поэтому не знаю, где искать.

Ответы [ 3 ]

2 голосов
/ 23 февраля 2010

Мы используем параметр perl -e для указания кода командной строки, который будет выполнен. От perlrun :

  • -e commandline
    может использоваться для ввода одной строки программы. Если задано -e, Perl не будет искать имя файла в списке аргументов. Для построения многострочного сценария может быть дано несколько команд -e. Обязательно используйте точки с запятой, как в обычной программе.

Например:

$ perl -e 'print "Hello, world!\n"'
Hello, world!

Ошибка, похожая на ту, которую вы видите,

$ perl -e 'while (1) { print "foo!"'
Missing right curly or square bracket at -e line 1, at end of line
syntax error at -e line 1, at EOF
Execution of -e aborted due to compilation errors.
0 голосов
/ 24 февраля 2010

Когда вы запускаете perl Makefile.PL, вы создаете файл с именем Makfefile. Внутри этого файла находятся различные цели, такие как test и install, которые выполняют настоящую работу. Некоторые из них реализованы как однострочные Perl с использованием -e.

Вы уже решили свою проблему, используя правильный вариант make.

0 голосов
/ 23 февраля 2010

Ну, от make до dmake к cpan. Я просто переключился на использование клиента CPAN и "Тест Encode :: Buckwalter", а затем "установить Encode :: Buckwalter", и он работал нормально! Не знаю, почему ошибки произошли тогда ... возможно, некоторые проблемы с платформой ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...