make和nmake for perl模块安装的比较

Windows和Linux / Unix操作系统相比,模块安装各不相同。

在Win32中,我们需要使用一个名为nmake的程序

1. C:\> perl Makefile.PL 2. C:\> nmake 3. C:\> nmake test 4. C:\> nmake install 

在Linux中我们遵循

  1. $ perl Makefile.PL 2. $ make 3. $ make test 4. $ make install 

安装的过程对于两个操作系统来说都是一样的,唯一的区别就是关键字makenmake 。 任何人都可以告诉我这个字母n代表什么,在windows中它的规范是什么。

从维基百科 ,

微软nmake,通常在Windows上可用。 这是相当基本的,它只提供其他两个版本(BSD和GNU)的一部分功能。 微软的nmake不会与AT&T和贝尔实验室的nmake混淆。

微软的nmake 在这里详细介绍,GNU make 在这里详细介绍

其实模块的安装通常在Windows和linux上如下进行:

 cpan modulee::Name 

在你的问题上。

Perl期望用于构建Perl的相同编译器套件可用于构建模块。

Windows上有两个主要的工具链。 有一个由微软提供的,有一个GNU的端口。

  • Microsoft提供的make工具名为nmake
  • GNU工具的MinGW端口提供的make工具名为dmake

所以,

  • 如果您的Perl是使用MS的工具(例如ActiveState的Perl构建的Windows)构建的,则需要使用nmake
  • 如果你的Perl是使用GNU的工具构建的(例如,由Strawberry构建的Perl),你需要使用dmake

这将我们带回到cpan modulee::Name

cpan将向Perl询问使用哪些工具来构建它,并使用这些工具。

一般。 在Windows上并不是这种情况。 cpan实际上在Windows上更加灵活。 cpan将首先查看用于构建Perl的工具链。 如果找不到, cpan为您安装GNU工具链,并暂时愚弄perl相信它是使用GNU工具链构建的。

这意味着你运行cpan modulee::Name它应该工作,不管在ActivePerl上。 (还有ppm install modulee::Name ,虽然我会运行ppm ,没有参数首先添加存储库(如贿赂))