问题标签 [makemaker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
128 浏览

perl - 如何更改 ExtUtils::Makemaker 中保存测试文件的目录?

如何从默认值t/*.t更改Makefile.PL中的默认测试路径?文档中提到了一个属性,但它不起作用。有人知道怎么做吗?

0 投票
4 回答
3376 浏览

perl - 如何启动新的 Perl 模块分发?

我正在尝试建立一个用 Perl 编写的大型项目。IBM MakeMaker 教程到目前为止一直很有帮助,但我不明白如何将所有模块链接到主程序中。在我的项目根目录中,我有MANIFEST, Makefile.PL, README, 一个bin目录和一个lib目录。在我的bin目录中,我有我的主脚本 ( Main.pl)。在lib目录中,我有我的每个模块,分为各自的目录(即和Utils::Util1目录等)。在每个模块目录中,还有一个目录,包含测试Utils::Utils2utilst

我的MANIFEST文件有以下内容:

Makefile.PL如下:

在我制作并运行后,程序崩溃,抱怨找不到Utils::Util1,当我运行时make test,它说no tests defined。任何人都可以提出任何建议吗?我从来没有在 perl 中做过这样的大型项目,我需要添加更多的模块

0 投票
2 回答
2337 浏览

perl - 构建模块时如何覆盖 perl 的编译标志?

在构建 Perl 模块时,ExtUtils::MakeMaker 使用 Config.pm 中定义的标志(参见 perldoc Config)作为 ccflags 和 ldflags 等值。

如何覆盖这些值(不编辑 Makefile.PL)?

似乎不起作用。

上下文:我正在尝试在 OS X 10.6 上编译 Term::Readline::Gnu。默认的 OS X perl 是通用二进制文件,因此具有 -arch i386 -arch ppc 等 ccflags。
另一方面,我的 Gnu Readline (6.0) 版本仅针对 -arch i386 的源代码编译。因此,它不包含试图使用 -arch ppc 链接到它的模块的预期符号。

0 投票
3 回答
1493 浏览

perl - 如何将多个 Perl 模块添加到 Makefile.PL?

寻找有关如何将多个 PM 文件添加到 MakeMaker 脚本的一些见解?

我看到这个文档,所有的例子看起来都像添加了一个文件,我如何添加多个文件?

我只是添加另一组值吗?

0 投票
3 回答
866 浏览

perl - 哪些工具可以帮助构建 XS 项目?

我最近开始使用perlxstut学习 XS ,教程建议我使用旧的h2xs工具创建我的模块,以创建基于ExtUtils::MakeMaker的项目。然而对于纯粹的 Perl 项目,h2xs/EUMM 长期以来一直不赞成Module::InstallModule::BuildDist::Zilla

有没有更现代的方式来创建 XS 项目?Module::Starter可以创建 XS 项目吗?Module::Build 或 Dist::Zilla 可以构建 XS 项目吗?他们的 pod 页面对此事保持沉默。

另一方面,针对 h2xs/EUMM 的批评是否适用于 XS 项目?如果你无论如何都需要一个 C 编译器,那么也需要一个 make 工具是否合理?

编辑:我看到这个问题回答了我关于创建项目的问题。我仍然想知道关于构建:EUMM 是唯一的选择,还是 Module::Build 和 Dist::Zilla 也能够构建 XS?

0 投票
1 回答
285 浏览

c - ExtUtils::MakeMaker 包括外部 *.mk 并在 *.mk 文件中为 WriteMakefile 中的 LIBS 和 INC 参数使用定义

我有一个顶级的defines.mk 文件,其中列出了某些目录和C 库,具体取决于这样的项目。

我使用 XS 来允许 perl 脚本访问这些库,并使用 MakeMaker 生成将链接这些库的 Makefile。我想让它在生成 Makefile 时引入这些定义。

给定这样的 WriteMakefile

我想实现这个

从@mobrule 我现在有了这个 Makefile.PL

看起来它做了我想要的。谢谢!

0 投票
2 回答
602 浏览

perl - MakeMaker:制作测试与制作 dist

假设我使用 . 创建了一个目录module-starter,并从那以后编写了几个额外的模块和测试。

make test然后将在中的所有模块上运行所有测试,但只会将中提到的文件打包到 tar.gz中。t/lib/make distMANIFEST

所以我最近因为跑步make test && make dist而被烧伤,但仍然得到一个破损的包裹。

我的问题是:我是否遗漏了什么,或者这可以报告为 MakeMaker 中的一个小错误?(Makefile.PL 似乎依赖于哪个)。

0 投票
5 回答
5824 浏览

perl - 如何修复 Perl CPAN 模块错误:需要 0.82 版,这只是 0.78 版?

无论我是使用 CPAN 还是手动安装,每次我尝试运行“perl Makefile.PL”来为 Perl 模块构建 makefile 时,都会收到以下错误:

评估 Makefile.PL 时出错:无法通过 /usr/lib/perl5/5.8.8/ExtUtils/MM_Any.pm 第 1199 行的包“CPAN::Meta”找到对象方法“new”

CPAN::Meta 模块已安装,所以我完全被这个模块难住了。

运行时:perl -MCPAN::Meta -e1它返回错误:

需要 0.82 版——这只是 /usr/lib/perl5/5.8.8/CPAN/Meta/Converter.pm 第 12 行的 0.78 版。

0 投票
1 回答
214 浏览

perl - 什么是等同于 ExtUils::MakeMaker INST_SCRIPT 的 Module::Build?

我想将项目从使用ExtUtils::MakeMaker转换为Module::Build。由于 Makefile.PL 大部分是默认的,并且Module::Build::Convert对我不起作用(见下文),我想手动转换它,但没有找到相当于 INST_SCRIPT 将可执行文件放在 Perl 的 bin/ 目录中。

我的 WriteMakefile 看起来像这样。

我尝试使用Module::Build::Convert但 make2build 抛出我无法解决的错误:

perl 版本:

0 投票
1 回答
2853 浏览

perl - 如何更改 MakeMaker 的默认 CFLAGS

如何让 Perl MakeMaker 更改它插入 Makefile 的 CFLAGS 的默认值?基于这篇文章,我尝试了这个:

然后在cpan里面,我用

但它仍然使用构建 CFLAGS Perl 的任何内容。

我按照这篇文章的建议查看了 lib/perl/.../Config.pm,但 CFLAGS 似乎没有在那里设置。

我有一个相关的问题得到了回答:How to tell CPAN about path to make and cc

我在 CPAN/Config.pm 中取得了一些进展

但这只会将值附加到 CFLAGS 中已经存在的任何内容,gcc 无法理解(如“-x03”和“-KPIC”)。