Сравнение make и nmake для установки модуля perl - PullRequest
0 голосов
/ 21 марта 2012

Установка модуля отличается по сравнению с 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 ]

2 голосов
/ 21 марта 2012

Из Википедия ,

Microsoft nmake, обычно доступная в Windows.Он довольно прост в том, что он предлагает только подмножество функций двух других версий Make (BSD и GNU).Nmake от Microsoft не следует путать с Nmake от AT & T и Bell Labs для Unix.

Microsoft nmake подробно здесь и GNU make подробно здесь

0 голосов
/ 21 марта 2012

На самом деле установка модуля обычно выполняется в Windows и Linux следующим образом:

cpan Module::Name

На ваш вопрос.

Perl ожидает тот же набор компиляторов, который использовался дляbuild Perl, который будет использоваться для сборки модуля.

В Windows есть две основные цепочки инструментов.Это тот, который предоставляется Microsoft, и порт GNU.

  • Инструмент make, предоставляемый Microsoft, называется nmake.
  • Инструмент make, предоставляемый портом MinGW.инструментов GNU называется dmake.

Итак,

  • Если ваш Perl был собран с использованием инструментов MS (например, сборок Perl в Windows от ActiveState), вам необходимоиспользовать nmake.
  • Если ваш Perl был собран с использованием инструментов GNU (например, сборок Perl от Strawberry), вам нужно использовать dmake.

Что возвращает нас к cpan Module::Name.

cpan спросит Perl, какие инструменты использовались для его создания, и использует эти инструменты.

Обычно.Это не так в Windows.cpan на самом деле гораздо более гибок в Windows.cpan сначала рассмотрит цепочку инструментов, которая использовалась для сборки Perl.Если он не найден, cpan установите для вас цепочку инструментов GNU и временно обманывают perl, чтобы он поверил, что он построен с использованием цепочки инструментов GNU.

Это означает, что вы запускаете cpan Module::Name, он должен работать независимо от того, чтона ActivePerl.(И есть также ppm install Module::Name, хотя я бы сначала запустил ppm без аргументов, чтобы добавить репозитории (например, взятки))

...