首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows上的ExtUtils::MakeMaker和支持的MAKE程序

Windows上的ExtUtils::MakeMaker和支持的MAKE程序
EN

Stack Overflow用户
提问于 2012-02-27 00:46:10
回答 1查看 1.2K关注 0票数 2

有各种各样的MAKE程序来构建软件,特别是(在本文中)微软的NMake、GNU Make和DMake ("Dennis Vadura的Make")。

在通过ExtUtils::MakeMaker构建Perl模块时,可以通过MAKE参数指定要使用的MAKE程序。

代码语言:javascript
复制
perl Makefile.PL MAKE=nmake
perl Makefile.PL MAKE=dmake
perl Makefile.PL MAKE=make

在我看来,在Windows上,GNU Make (它是在GnuWin32中的,非常适合MinGW)不受支持,或者没有经过测试;然而,在EU::MM manpage中没有提到这一点。

让我相信这一点的是,EU::MM生成的GNU Make的Makefile根本不起作用。它包含DIRFILESEP = \ (从MM_Win32.pm中的sub init_DIRFILESEP生成),但反斜杠被GNU Make解释为行连续字符,因此它无法工作,因为它生成了错误的路径名:

代码语言:javascript
复制
make: *** No rule to make target `C:\Opt\Perl514.64\libConfig.pm',
  needed by `makefile'.  Stop.

如果您解决了这个问题,那么在一个临时批处理文件中就会出现另一个错误(我用make -d观察到了这个错误),该文件随后会被删除:

代码语言:javascript
复制
syntax error at -e line 1, near "'755')
"
Missing right curly or square bracket at -e line 1, at end of line

当然,只使用NMake或DMake是很好的,不用担心对GNU Make的支持,但在这种情况下,文档中应该有一个警告,不要在Windows上使用GNU Make。(我认为这是最受欢迎的Make程序。)

那么在Windows上GNU Make support by EU::MM的状态如何呢?这是一个小故障还是故意的?或者我错过了让它工作的线索?那是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-27 02:34:24

NMake和DMake是build Perl on Windows仅支持的程序。由于EU::MM默认使用用于构建Perl的相同make,因此很少有人尝试在Windows上将GNU Make与EU::MM一起使用,我怀疑对它的支持对EU::MM的维护者来说是高度优先的。

所以我想说在Windows上的EU::MM + GNU Make在设计上是不受支持的。但这更多的是缺乏tuits,而不是故意拒绝GNU Make。

如果你有兴趣添加对它的支持,我希望他们会接受拉取请求。EU::MM repo在GitHub上。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9454961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档