gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 10:08:11 34 4
gpt4 key购买 nike

有多种用于构建软件的 MAKE 程序,特别是(出于本文的目的)Microsoft NMake、GNU Make 和 DMake(“Dennis Vadura 的 Make”)。

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

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 解释为续行符,因此它无法工作,因为它会生成错误的路径名:

make: *** No rule to make target `C:\Opt\Perl514.64\libConfig.pm',
needed by `makefile'. Stop.

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

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 程序。)

那么 EU::MM 对 Windows 的 GNU Make 支持情况如何?这是一个小故障还是设计使然?还是我错过了让它发挥作用的线索?这是什么?

最佳答案

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

所以我想说 Windows 上的 EU::MM + GNU Make 不受设计支持。但这与其说是故意拒绝 GNU Make,不如说是缺乏技巧。

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

关于windows - ExtUtils::MakeMaker 和 Windows 上支持的 MAKE 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9454961/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com