2012-03-21 65 views
0

與Windows和linux/Unix操作系統相比,模塊安裝有所不同。perl模塊安裝的make和nmake的比較

在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 

後安裝的過程將是相同的兩個操作程序系統,唯一的區別是在關鍵字使用使nmake。任何人都可以告訴我這是什麼字符n代表什麼,它的規範在Windows中。

+2

無論您使用nmake,make或dmake都取決於安裝程序,即使在Windows中也是如此。 Strawberry Perl的默認工具鏈包括dmake。 nmake通常包含在ActiveState發行版的工具鏈中,在cygwin下,我懷疑你會'make'(儘管我沒有用cygwin來確認)。 ExtUtils :: MakeMaker通常會創建一個makefile,它將適用於常見的'make'實現中的最小公分母,所以除非真的很喜歡,否則不必擔心,除非擔心用戶是否真的有一些版本的make。 – DavidO 2012-03-21 07:55:12

+0

@DavidO,Cygwin是一個unix仿真層,所以稱它爲Windows就像說WINE是linux。 'cygwin'提供GNU工具,所以它使用GNU的'make'。 – ikegami 2012-03-21 17:13:12

+0

:)我喜歡這個比喻,@ikegami。當然你是對的。我只是在對平臺實施的不確定性進行對衝。 – DavidO 2012-03-21 18:43:43

回答

2

Wikipedia

微軟NMAKE,普遍適用於Windows。它在 中相當基本,它只提供Make(BSD和GNU)的其他兩個版本 的一部分功能。微軟的nmake不會與AT & T和Bell Labs for Unix的 nmake混淆。

微軟nmake詳盡here和GNU make詳盡here

-1

事實上,模塊的安裝,則通常在Windows如下和Linux:

cpan Module::Name 

在你的問題。

Perl期望使用相同的編譯器套件來構建用於構建模塊的Perl。

Windows上有兩個主要工具鏈。有一個由微軟提供的,有一個GNU的端口。

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

所以,

  • 如果你的Perl是使用MS的工具(例如,Windows通過的ActiveState Perl的建立)的建成,你需要使用nmake
  • 如果您的Perl是使用GNU的工具(例如由Strawberry構建的Perl)構建的,則需要使用dmake

這把我們帶回到cpan Module::Name

cpan會問Perl使用什麼工具來構建它,並使用這些工具。

通常情況下。 Windows上不是這種情況。在Windows上,cpan實際上更加靈活。 cpan將首先查看用於構建Perl的工具鏈。如果找不到,cpan會爲您安裝GNU工具鏈,並且暫時欺騙perl以相信它是使用GNU工具鏈構建的。

這意味着你運行cpan Module::Name它應該工作,無論在ActivePerl上。 (也有ppm install Module::Name,儘管我運行的是ppm,但沒有參數先添加存儲庫(例如賄賂))