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

时间:2012-03-21 06:25:06

标签: windows linux perl makefile nmake

与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

两个操作系统的安装过程都是相同的,唯一的区别在于使用 make nmake 的关键字。任何人都可以告诉我 n 代表什么,以及它在Windows中的规范是什么。

2 个答案:

答案 0 :(得分:2)

来自Wikipedia

  

Microsoft nmake,通常在Windows上提供。这是相当基本的   它只提供其他两个版本的功能的子集   Make(BSD和GNU)。微软的nmake不要混淆   来自AT& T和贝尔实验室的nmake for Unix。

Microsoft nmake详细here,GNU make详细here

答案 1 :(得分:-1)

实际上,模块安装通常在Windows和Linux上完成如下:

cpan Module::Name

关于你的问题。

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

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

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

所以,

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

这将我们带回cpan Module::Name

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

常。在Windows上情况并非如此。 cpan实际上在Windows上更灵活。 cpan将首先查看用于构建Perl的工具链。如果找不到,cpan会为你安装GNU工具链,并暂时欺骗perl,使其相信它是使用GNU的工具链构建的。

这意味着你运行cpan Module::Name它无论在ActivePerl上是什么都应该有效。 (而且还有ppm install Module::Name,虽然我先运行ppm但没有参数添加存储库(例如贿赂))