2010-02-23 23 views
3

我在使用Strawberry Perl的Windows上。我为Buckwalter Encode模块运行perl Makefile.pl,工作正常。当我运行make,它说如何修复Perl模块Makefile中“执行-e因编译错误而中止”?

Execution of -e aborted due to compilation errors

什么是-e?我该去哪个文件修复错误?显然,第1行有一个缺失的花括号,但我不知道哪个文件有缺少的花括号,因此我不知道在哪里寻找。

+1

让我们看到所有的错误,你的报告将在年底告诉我们任何一个 - 的第一个错误是最重要的 – Mark 2010-02-23 12:49:07

+0

所有的错误:在-e行1,下一个字符) 语法错误缺少右卷曲或方括号在-e行1,行尾 执行-e因编译错误而中止。 make:*** [pm_to_blib]错误255 但是这并不重要,因为事实证明,因为我使用Strawberry Perl,我应该使用dmake,而不是make。所以我用它。我跑dmake,它的工作,然后dmake测试(得到结果=通过)。但在最后一个命令“dmake install”中,我得到:“错误:检测到循环宏”PREFIX。 所以仍然有一个错误。 – asaaki 2010-02-23 13:01:57

+0

编辑答案以添加更多信息。 :) – 2010-02-23 21:43:16

回答

2

我们使用perl的-e选项来在命令行中指定要执行的代码。从perlrun

  • -e commandline
    may be used to enter one line of program. If -e is given, Perl will not look for a filename in the argument list. Multiple -e commands may be given to build up a multi-line script. Make sure to use semicolons where you would in a normal program.

例如:

$ 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

好了,从化妆到的dmake到CPAN ..我只是切换到使用CPAN客户端,并做 “测试编码:: Buckwalter”,然后 “安装编码:: Buckwalter”,它工作正常! 不知道为什么发生了错误......可能是一些平台问题。

+0

在Windows上,Pe​​rl使用'nmake'或'dmake'。你可能有一个'make.exe',但我怀疑这是Perl所期望的。我相信你必须使用你的Perl编译的make。尝试'perl -e'使用Config;打印$ Config {make}“'来查看它想要的类型。 – cjm 2010-02-23 21:46:28

0

当您运行perl Makefile.PL时,您将创建一个名为Makfefile的文件。该文件内有各种目标,如testinstall,它们都是真正的工作。其中一些实现为使用-e的Perl单线程。

虽然已经使用make的正确变体解决了您的问题。