windows - Sammenligning af make og nmake til perl modul installation

Indlæg af Hanne Mølgaard Plasc

Problem



Modulinstallationen varierer i forhold til Windows og Linux/Unix Operating System.


I Win32 skal vi bruge et program kaldet nmake og efter vi følger


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


og i Linux følger vi


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


installeringsprocessen ville være den samme for begge operativsystemer, den eneste forskel ville være i søgeordet, der blev brugt gøre og nmake . Kan nogen fortælle mig, hvad er bogstavet n og hvad er dets specifikation i Windows.

Bedste reference


Fra Wikipedia, [20]



  Microsoft nmake, som almindeligvis er tilgængelig på Windows. Det er ret grundlæggende i
  at den kun tilbyder en delmængde af funktionerne i de to andre versioner
  of Make (BSD og GNU). Microsofts nmake skal ikke forveksles med
  nmake fra AT &T og Bell Labs til Unix.



Microsoft nmake er detaljeret her, og GNU make er detaljeret her [21] [22]

Andre referencer 1


Faktisk er modulinstallation normalt udført som følger på Windows og Linux:


cpan Module::Name





På dit spørgsmål.


Perl forventer den samme kompilatorsuite, der blev brugt til at opbygge Perl, der skulle bruges til at bygge modulet.


Der er to primære værktøjskæder på Windows. Der er den ene, der leveres af Microsoft, og der er en havn af GNU'er.



  • Maskinværktøjet, der leveres af Microsoft, hedder nmake.

  • Maskinværktøjet, der leveres af MinGW-porten i GNUs værktøjer, hedder dmake.



Så,



  • Hvis din Perl blev bygget ved hjælp af MS 's værktøjer (f.eks. Windows bygger af Perl af ActiveState), skal du bruge nmake.

  • Hvis din Perl blev bygget ved hjælp af GNUs værktøjer (fx bygger af Perl af Strawberry), skal du bruge dmake.






Hvilket bringer os tilbage til cpan Module::Name.


cpan vil spørge Perl, hvilke værktøjer der blev brugt til at opbygge det, og bruge disse værktøjer.


Normalt. Det er ikke tilfældet på Windows. cpan er faktisk langt mere fleksibelt på Windows. cpan vil først se den værktøjskæde, der blev brugt til at opbygge Perl. Hvis den ikke findes, cpan installer GNU-værktøjskæden for dig og midlertidigt narre perl til at tro på, at den blev bygget ved hjælp af GNUs værktøjskæde.


Det betyder at du kører cpan Module::Name det burde fungere uanset hvad der er på ActivePerl. (Og der er også ppm install Module::Name, selv om jeg drev ppm uden argumenter først for at tilføje repositorier (fx bestikkelser))