Software

De Unix- en Linux-opdracht begrijpen: make

Schrijver: Louise Ward
Datum Van Creatie: 10 Februari 2021
Updatedatum: 16 Kunnen 2024
Anonim
The 50 Most Popular Linux & Terminal Commands - Full Course for Beginners
Video: The 50 Most Popular Linux & Terminal Commands - Full Course for Beginners

Inhoud

Bouw software vanuit de broncode

Het make-hulpprogramma bepaalt automatisch welke delen van een groot programma opnieuw moeten worden gecompileerd en geeft de opdrachten om ze opnieuw te compileren. De handleiding beschrijft de GNU-implementatie van make, geschreven door Richard Stallman en Roland McGrath.

Het make-hulpprogramma is niet beperkt tot programma's. U kunt het gebruiken om elke taak te beschrijven waarbij sommige bestanden automatisch moeten worden bijgewerkt van andere wanneer de andere veranderen. De opdracht make wordt meestal gebruikt in een gemeenschappelijk proces om software te bouwen op basis van de broncode.

Het commando maken in actie

Dit is een bekend voorbeeld van het gebruik van de opdracht make op Linux. Meestal maakt het deel uit van een eenvoudig driestapsproces om open-source-apps te bouwen op basis van hun broncode.


Deze voorbeelden tonen C-programma's omdat deze het meest voorkomen, maar je kunt make gebruiken met elke programmeertaal die zijn compiler kan uitvoeren met een shell-commando.

  1. Installeer Git, als je het niet hebt, samen met de tools voor het bouwen van software.

    apt install git build-essential

  2. Kies een app om mee te werken of download VLC.

    apt build-dep vlc

  3. Kloon de VLC-broncode.

    git clone https://github.com/videolan/vlc.git

  4. Wijzig mappen naar de gekloonde VLC-broncode en voer het configuratiescript uit.

    cd vlc
    ./bootstrap
    ./configureren

  5. Voer de ... uit maken commando samen met de -j vlag, gevolgd door het aantal CPU-kernen / threads dat uw systeem heeft.

    maak -j4

  6. Dat zal even duren. Als het klaar is, installeer je de app met maak installeren.

    sudo make install

  7. Je bent klaar.


Vaker wel dan niet, zo ziet u het gebruikte make-commando. Er zijn misschien complexere procedures dan deze of kleine variaties, maar het is nooit te complex.

GNU Technische documentatie maken

De onderstaande sectie is een technische uitsplitsing van het make-commando. Als u het meeste uit make wilt halen, raadpleeg dan de onderstaande opties.

Deze pagina is een uittreksel van de documentatie van GNU make. Het wordt slechts af en toe bijgewerkt omdat het GNU-project geen nroff gebruikt. Raadpleeg het informatiebestand voor volledige, actuele documentatiemake.info die is gemaakt van het Texinfo-bronbestandmake.texinfo

Syntaxis en voorbereiding van het make-hulpprogramma

De syntaxis van het hulpprogramma make is maken-f makefile ] [ keuze ] ... doelwit ...  


Om je voor te bereiden om make te gebruiken, moet je een bestand schrijven genaamdmakefiledie de relaties tussen bestanden in uw programma beschrijft en de opdrachten vermeldt voor het bijwerken van elk bestand. Meestal wordt een uitvoerbaar bestand bijgewerkt vanuit objectbestanden, die op hun beurt worden gemaakt door bronbestanden te compileren.

Als er eenmaal een geschikt makefile bestaat, moet je elke keer dat je een aantal bronbestanden wijzigt, de shell-opdracht gebruiken maken volstaat om alle noodzakelijke hercompilaties uit te voeren. Het make-programma gebruikt de makefile-database en de laatste wijzigingstijden van de bestanden om te beslissen welke bestanden moeten worden bijgewerkt. Voor elk van die bestanden geeft het de opdrachten uit de database.

Het hulpprogramma make voert opdrachten uit in het makefile om een ​​of meer doelnamen bij te werken, waarnaamis typisch een programma. Als Nee-f optie is aanwezig, zoek naar de makefilesGNUmakefile, makefile, enMakefile, in die volgorde.

Normaal gesproken zou je ook de makefile moeten aanroepenmakefileofMakefile. (Het wordt aanbevolen om Makefile te gebruiken omdat het prominent aan het begin van een directorylijst staat, naast andere belangrijke bestanden zoals README.) De voornaam-gecontroleerde GNUmakefile wordt niet aanbevolen voor de meeste makefiles. Gebruik deze naam alleen als een makefile specifiek is voor GNU make en niet begrepen zal worden door andere versies van make. Als makefile is -, wordt de standaardinvoer gelezen.

De maken hulpprogramma werkt een doel bij als het afhankelijk is van vereiste bestanden die zijn gewijzigd sinds het doel voor het laatst is gewijzigd, of als het doel niet bestaat.

Opties

De -b en -m opties worden genegeerd voor compatibiliteit met andere versies van make.

-C richt verandert naar directory dir voordat je de makefiles leest of iets anders doet. Indien meerdere-C opties zijn gespecificeerd, elk wordt geïnterpreteerd ten opzichte van de vorige:-C-C enz is gelijk aan-C / enz. Dit wordt meestal gebruikt bij recursieve aanroepingen van make.

De -d optie print foutopsporingsinformatie naast de normale verwerking. De foutopsporingsinformatie geeft aan welke bestanden worden overwogen voor het opnieuw maken, welke bestandstijden worden vergeleken en met welke resultaten, welke bestanden opnieuw moeten worden gemaakt, en welke impliciete regels worden overwogen en welke worden toegepast.

De -e optie geeft variabelen uit de omgeving voorrang op variabelen uit makefiles.

De -fhet dossier optie gebruikthet dossier als een makefile.

De -ik optie negeert alle fouten in opdrachten die worden uitgevoerd om bestanden opnieuw te maken.

De -IKricht optie specificeert een directoryricht om te zoeken naar opgenomen makefiles. Indien meerdere -ik opties worden gebruikt om verschillende mappen op te geven, de mappen worden doorzocht in de opgegeven volgorde. In tegenstelling tot de argumenten voor andere vlaggen van make, mappen met-IK vlaggen mogen direct na de vlag komen:-Idir is toegestaan, evenals-Dir. Deze syntaxis is toegestaan ​​voor compatibiliteit met de C-preprocessor-IK vlag.

De -j banen optie specificeert het aantal taken (opdrachten) dat gelijktijdig moet worden uitgevoerd. Als er meerdere zijn-j optie, de laatste is effectief. Als de-j optie wordt gegeven zonder argument, make beperkt het aantal taken dat tegelijkertijd wordt uitgevoerd niet.

De -k optie gaat zo veel mogelijk door na een fout. Het doelwit dat is mislukt en degenen die ervan afhankelijk zijn, kunnen niet opnieuw worden gemaakt. De andere afhankelijkheden van deze doelen kunnen echter allemaal worden verwerkt.

De -l en - Ik laad opties specificeren dat er geen nieuwe taken (opdrachten) mogen worden gestart als er andere taken actief zijn, en het laadgemiddelde is tenminsteladen (een drijvende-kommagetal). Zonder argument verwijdert het een eerdere laadlimiet.

De -n optie drukt de opdrachten af ​​die zouden worden uitgevoerd, maar voert ze niet uit.

De -Ohet dossier optie maakt de het dossier zelfs als het ouder is dan zijn afhankelijkheden en niets opnieuw maakt vanwege wijzigingen in het dossier. In wezen wordt het bestand behandeld als oud en worden de regels ervan genegeerd.

De -p optie print de database (regels en variabele waarden) die resulteert uit het lezen van de makefiles. Vervolgens wordt het uitgevoerd zoals gewoonlijk of zoals anders aangegeven. Hiermee wordt ook de versie-informatie afgedrukt die door de-v schakelaar (zie hieronder). Gebruik om de database af te drukken zonder te proberen bestanden opnieuw te makenmaken -p -f / dev / null.

De -q optie stelt vraagmodus in. Het voert geen opdrachten uit en drukt niets af. Het retourneert een exit-status die nul is als de opgegeven doelen up-to-date zijn, anders niet nul.

De -r optie elimineert het gebruik van de ingebouwde impliciete regels. Het wist ook de standaardlijst met achtervoegsels voor achtervoegselregels.

De -s optie zet de operatie stil. Het drukt de opdrachten niet af terwijl ze worden uitgevoerd.

De -S optie annuleert het effect van de-k keuze. Dit is niet nodig, behalve bij een recursief merk waar-k kan worden overgenomen van het merk op het hoogste niveau via MAKEFLAGS of als u instelt-k in MAKEFLAGS in uw omgeving.

De -t optie raakt bestanden aan (markeert ze up-to-date zonder ze te wijzigen) in plaats van hun opdrachten uit te voeren. Dit wordt gebruikt om te doen alsof de opdrachten zijn gedaan, om toekomstige aanroepingen van make voor de gek te houden.

De -v optie print de versie van het make-programma plus een copyright, een lijst met auteurs en een melding dat er geen garantie is.

De -w optie drukt een bericht af met de werkmap voor en na andere verwerking. Dit kan handig zijn om fouten te vinden van gecompliceerde nesten van recursief merk opdrachten.

De -Whet dossier optie doet alsof het doelwit het dossier is veranderd. Bij gebruik met de-n vlag, dit laat zien wat er zou gebeuren als je dat bestand zou wijzigen. Zonder-n, het is bijna hetzelfde als het uitvoeren van eenaanraken commando op het gegeven bestand voordat make wordt uitgevoerd, behalve dat de wijzigingstijd alleen wordt veranderd in de verbeelding van make.

Kijk

Wij Adviseren

Alles wat u moet weten over Beats 1
Leven

Alles wat u moet weten over Beats 1

Mi je de oude dagen van geweldige radio, of ben je op zoek naar de bete nieuwe nummer en de populairte dj'? Apple' Beat 1 i voor jou. Of het nu artikelen zijn, tv-commercial die het aanprijze...
Hoeveel kosten Blu-ray Disc-spelers?
Leven

Hoeveel kosten Blu-ray Disc-spelers?

De Blu-ray Dic-peler i de onbezongen held van home-entertainment. Ondank de dominantie van treaming, bieden Blu-ray-peler uittekende HD-home entertainment-waarde tegen zeer betaalbare prijzen. Blu-ra...