- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
有多种用于构建软件的 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/
有没有办法让 ExtUtils::MakeMaker 生成自定义 Makefile 目标?比如说,我想做一些只有开发人员感兴趣的特定事情,比如运行 pod 和回归测试;我可以为此使用 env 变量,但
我有一个带有 MakeMaker 生成的 Makefile 的模块,我想并行运行我的单元测试 (make test)。 Test::Harness接受例如 HARNESS_OPTIONS=j4 使用
如何让 Perl MakeMaker 更改插入到 Makefile 中的 CFLAGS 的默认值?基于this post ,我试过这个: export CFLAGS=... 然后在cpan里面,我用确
我正在开发一个名为 Mite 的 Perl 模块。 .它是一种“编译器”。您使用类似 Moose 的声明式 OO 语法编写 Perl 类。 Mite 不是在每次执行时都将类放在一起,而是在构建时完成这
我正在使用 ExtUtils::MakeMaker创建一个 Makefile来自 Makefile.PL 的 Perl 包. Perl 包(和测试)依赖于 Perl 包通过 Perl 的 system
如何从默认值 t/*.t 更改 Makefile.PL 中的默认测试路径?文档中提到了一个属性,但它不起作用。有人知道怎么做吗? 最佳答案 在 Makefile.PL 中: WriteMakefile
我需要在 /usr/bin 中安装我的主脚本(作为可执行文件)(取决于 INSTALL_BASE)。该部分已完成。 下一个是安装到目录/usr/share/project_name/data opti
我在用 perl 编写的应用程序中有一些模块和脚本。对于它的分发,我使用 ExtUtils::MakeMaker。 模块和脚本的目标操作系统是 Linux。关键是我希望最终用户将模块/脚本安装在非标准
在安装mha4mysql时,大概步骤是:解压,perl Makefile.PL,make, make install。在执行 perl Makefile.PL 报错如下,简单记录一下解决方法
我有一系列 perl 脚本,我正在为其编写 Makefile.PL 脚本,但我对 ExtUtils::MakeMaker 相当缺乏经验。 . 我编写的其中一个脚本对命令行实用程序进行了系统调用,必须安
PREREQ_PM指定运行时的先决条件,但是如何指定运行测试用例需要哪些模块? 我应该使用 BUILD_REQUIRES为了这? 最佳答案 截至ExtUtils::MakeMaker 6.64,有一个
我正在用 perl 开发一个库和脚本。对于分发,我正在使用 ExtUtils::MakeMaker , 我在名为 data 的目录中有一些配置和数据文件。在分发路径中,例如配置文件是 data/con
有多种用于构建软件的 MAKE 程序,特别是(出于本文的目的)Microsoft NMake、GNU Make 和 DMake(“Dennis Vadura 的 Make”)。 当通过 ExtUtil
我不想在解压 Perl 模块的源代码的目录中添加或修改文件,而是想在单独的目录中构建所有内容。这是否可以通过相当标准的Makefile.PL 轻松实现?使用 ExtUtils::MakeMaker ?
我的一个模块未通过 CPANTS 政策 meta_yml_has_provides 文档指出: Add all modules contained in this distribution to th
给定一个使用 C 库的 Perl XS 模块,假设有一个正确设置的 Makefile.PL,以便所有头文件和库位置、编译器和链接器标志等都能正常工作。 现在,假设我想包含一个小型 C 程序,其中包含使
我在建 git在不使用包管理器的非常小的系统(Ubuntu 16.04 docker 镜像)上(除了 wget 、 xz-utils 、 make 和 gcc )。因此,我按如下方式安装了先决条件:
我有一个顶级 defines.mk 文件,它列出了某些目录和 C 库,根据项目的不同而包含。 KERNEL_LIB = -lkdev DRIVER_LIB = -ldriver -lutil -li
我是一名优秀的程序员,十分优秀!