Skip to main content

GNU Make Book - Demystifying Linux Build Automation

The Code-Breakers (Documentary, Free/Open Source Software) (Juni 2026)

The Code-Breakers (Documentary, Free/Open Source Software) (Juni 2026)
Anonim

Udover at skrive om Linux og skrive anmeldelser og tutorials om distributioner og værktøjer er jeg også stærkt involveret i softwareudvikling. Desværre foregår 99,9% af denne softwareudvikling på Windows-platformen.

Jeg har over 20 års erfaring som C ++, Visual Basic, VB.NET og C # udvikler, og jeg er også en dab-hånd med SQL Server både som en DBA og en udvikler.

Det, jeg ikke så godt ved, er at udvikle software til Linux. Det er bare noget, jeg aldrig har virkelig gidet med. Hovedårsagen er, at efter at have udviklet software i løbet af dagen, er det sidste, jeg vil gøre, at sidde om aftenen og skrive mere software.

Jeg synes selvfølgelig at tinkering med scripting og skrive det ulige lille program. Disse er normalt til elektronikbaserede projekter på Raspberry PI.

En ting, som mange udviklere på Windows-platformen har problemer med, når de først går over til Linux, er at lære om de værktøjer, der kræves til at opbygge og pakke applikationer.

Langt den nemmeste type applikation, der skal udvikles, er webapplikationer, fordi de generelt ikke kræver kompileret kode (PHP, Perl, Python) og filerne implementeres til et bestemt sted på webserveren.

Et stort antal applikationer bygget til Linux er udviklet ved hjælp af C, C ++ eller Python. Kompilering af et enkelt C-program er forholdsvis let, men når du skal kompilere et antal C-programmer med flere afhængigheder, bliver tingene lidt mere vanskelige.

GNU Make er et værktøj til bygningsautomatisering, der hjælper dig med at kompilere dine applikationer igen og igen og på forskellige måder. For eksempel kan du levere en parameter, der afhænger af værdien, vil kompilere et program ved hjælp af 64-bit eller 32-bit.

GNU Make-bogen er skrevet af John Graham-Cumming for at hjælpe brugere af GNU Make få et fast greb om kompleksiteten i forbindelse med GNU Make.

Bogen er opdelt i seks kapitler:

  1. Grundlæggende Revideret
  2. Makefile Debugging
  3. Bygning og genopbygning
  4. Faldgruber og problemer
  5. Skubbe konvolutten
  6. GNU Make Standard Library

Jeg tror ikke på, at bogen virkelig er rettet mod begyndere, fordi det mangler visse præciseringer, som du ville forvente, når du lærer et nyt emne som "Hvad er GNU Make?", "Hvordan opretter jeg en Make-fil?", "Hvorfor bruger Gør bedre end at kompilere hvert program en efter en? " og "Hvordan kompilerer jeg programmer ved hjælp af GNU Make?". Alle disse fagområder er omfattet af GNU Make Manual.

Den kendsgerning, at det første kapitel hedder "The Basics Revisited" i modsætning til "The Basics" viser tydeligt, at du forventes at have en grundforbindelse i emnet, inden du begynder.

Det første kapitel omhandler alle de grundlæggende elementer som brugen af ​​variabler, miljøer, der bruges af kommandoer og $ (Shell) miljøet. Når kapitlet går videre, kommer du ind i emnet sammenligning, lister og brugerdefinerede funktioner.

Hvis du har brugt GNU Make i et stykke tid, men endnu ikke anser dig selv som en ekspert, er der nogle gode tip og tip, som vil hjælpe dig med at forstå visse komplicationer, der måske ikke umiddelbart er synlige.

Det andet kapitel vil være en gave for de af jer, der har forsøgt at fælde fejl i byggeskrifter. Afsnittet "Makefile Debugging" er fyldt med fremragende tip og tip til fejlfinding af Makefiles og indeholder afsnit om udskrivning af variable værdier og endda dumping værdien af ​​hver variabel. Længere ind i kapitlet er der en vejledning til GNU Debugger, som du kan bruge til at gå gennem scripts.

Det tredje kapitel indeholder eksempel makefiles, men mere end det viser dig, hvordan du opretter Makefiles, som du kan køre igen og igen.

"Faldgruber og problemer" ser på forskellene mellem bestemte vilkår som = og: =, og ifndef og? =.

Jeg fandt da jeg gik videre gennem bogen, fordi jeg ikke aktivt forsøger at bruge GNU Make, og fordi min viden er på et meget grundlæggende niveau, gik noget af emnet meget over mit hoved.

Da jeg kom til kapitlet "Pushing The Envelope", lukkede mine øjne lidt over.

Mit hovedoversigt, hvis jeg skulle opsummere denne bog, er, at forfatteren helt klart kender sine ting og har forsøgt at videregive så mange oplysninger som muligt.

Problemet er, at nogle gange, når et emne ekspert forsøger at skrive noget ned, har de denne "åh det er nemt, alt hvad du skal gøre er …." aura om dem.

Gummistemplet på min bagdør kom i sidste uge, og som det er bare et par år, ringede jeg til firmaet, der monterede det som det stadig er i garanti.

Damen på telefonen sagde: "Åh det er ok, jeg sender dig en ny sæl".

Jeg sagde "Åh skal jeg passe på det selv? Er det noget jeg kan gøre".

Svaret var "Det er sikkert, du kan, alt du skal gøre er at tage ud af døren, passe tætningen og sætte døren på igen".

Nu var min øjeblikkelige tanke "woah, spol lidt tilbage der. Tag døren af?"? ". Jeg er ikke kvalificeret til at fjerne en dør, passe på en tætning og sætte døren på plads igen. Jeg forlader det til eksperterne.

Med denne bog føler jeg, at du har brug for en anden bog og en vis erfaring med at skrive Makefiles, før du finder det nyttigt.

Jeg tror, ​​at de vejledninger, tips og viden, der var til rådighed, ville hjælpe nogle mennesker med at sige "Åh, det er derfor, det gør det" eller "Jeg forstod ikke, at du kunne gøre det på den måde".

Min vurdering er derfor, at du bør købe denne bog, hvis du søger præcisering eller mere mellemliggende til avanceret viden om GNU Make, men det er ikke en bog for begyndere.