问题标签 [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.
perl - 如何更改 ExtUtils::Makemaker 中保存测试文件的目录?
如何从默认值t/*.t更改Makefile.PL中的默认测试路径?文档中提到了一个属性,但它不起作用。有人知道怎么做吗?
perl - 如何启动新的 Perl 模块分发?
我正在尝试建立一个用 Perl 编写的大型项目。IBM MakeMaker 教程到目前为止一直很有帮助,但我不明白如何将所有模块链接到主程序中。在我的项目根目录中,我有MANIFEST
, Makefile.PL
, README
, 一个bin
目录和一个lib
目录。在我的bin
目录中,我有我的主脚本 ( Main.pl
)。在lib
目录中,我有我的每个模块,分为各自的目录(即和Utils::Util1
目录等)。在每个模块目录中,还有一个目录,包含测试Utils::Utils2
utils
t
我的MANIFEST
文件有以下内容:
Makefile.PL
如下:
在我制作并运行后,程序崩溃,抱怨找不到Utils::Util1
,当我运行时make test
,它说no tests defined
。任何人都可以提出任何建议吗?我从来没有在 perl 中做过这样的大型项目,我需要添加更多的模块
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 链接到它的模块的预期符号。
perl - 哪些工具可以帮助构建 XS 项目?
我最近开始使用perlxstut学习 XS ,教程建议我使用旧的h2xs工具创建我的模块,以创建基于ExtUtils::MakeMaker的项目。然而对于纯粹的 Perl 项目,h2xs/EUMM 长期以来一直不赞成Module::Install、Module::Build或Dist::Zilla。
有没有更现代的方式来创建 XS 项目?Module::Starter可以创建 XS 项目吗?Module::Build 或 Dist::Zilla 可以构建 XS 项目吗?他们的 pod 页面对此事保持沉默。
另一方面,针对 h2xs/EUMM 的批评是否适用于 XS 项目?如果你无论如何都需要一个 C 编译器,那么也需要一个 make 工具是否合理?
编辑:我看到这个问题回答了我关于创建项目的问题。我仍然想知道关于构建:EUMM 是唯一的选择,还是 Module::Build 和 Dist::Zilla 也能够构建 XS?
c - ExtUtils::MakeMaker 包括外部 *.mk 并在 *.mk 文件中为 WriteMakefile 中的 LIBS 和 INC 参数使用定义
我有一个顶级的defines.mk 文件,其中列出了某些目录和C 库,具体取决于这样的项目。
我使用 XS 来允许 perl 脚本访问这些库,并使用 MakeMaker 生成将链接这些库的 Makefile。我想让它在生成 Makefile 时引入这些定义。
给定这样的 WriteMakefile
我想实现这个
从@mobrule 我现在有了这个 Makefile.PL
看起来它做了我想要的。谢谢!
perl - MakeMaker:制作测试与制作 dist
假设我使用 . 创建了一个目录module-starter
,并从那以后编写了几个额外的模块和测试。
make test
然后将在中的所有模块上运行所有测试,但只会将中提到的文件打包到 tar.gz中。t/
lib/
make dist
MANIFEST
所以我最近因为跑步make test && make dist
而被烧伤,但仍然得到一个破损的包裹。
我的问题是:我是否遗漏了什么,或者这可以报告为 MakeMaker 中的一个小错误?(Makefile.PL 似乎依赖于哪个)。
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 版。
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 版本:
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”)。