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

I tillegg til å skrive om Linux og skrive vurderinger og veiledninger om distribusjoner og verktøy, er jeg også sterkt involvert i programvareutvikling. Dessverre utgjør 99,9% av denne programvaren på Windows-plattformen.

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

Det jeg ikke er så bra på, er å utvikle programvare for Linux. Det er bare noe jeg aldri har plaget meg med. Hovedårsaken er at etter å ha utviklet programvare i løpet av dagen, er det siste jeg vil gjøre å sitte om kvelden skrive mer programvare.

Jeg synes åpenbart å tinkering med scripting og skrive det odde lille programmet. Disse er vanligvis for elektronikkbaserte prosjekter på Raspberry PI.

En ting som mange utviklere på Windows-plattformen har problemer med når de først går over til Linux, er å lære om verktøyene som kreves for å bygge og pakke applikasjoner.

Langt den enkleste typen søknad å utvikle er webapplikasjoner fordi de vanligvis ikke krever kompilert kode (PHP, Perl, Python) og filene distribueres til et bestemt sted på webserveren.

Et stort antall programmer bygget for Linux er utviklet ved hjelp av C, C ++ eller Python. Å samle et enkelt C-program er relativt enkelt, men når du trenger å kompilere en rekke C-programmer med flere avhengigheter, blir det litt vanskeligere.

GNU Make er et verktøy for bygningsautomatisering som hjelper deg med å kompilere applikasjonene igjen og igjen og på forskjellige måter. For eksempel kan du levere en parameter som avhengig av verdien vil kompilere et program ved hjelp av 64-bit eller 32-bit.

GNU Make-boken er skrevet av John Graham-Cumming for å hjelpe brukere av GNU Make å få et fast grep om kompleksiteten knyttet til GNU Make.

Boken er delt inn i seks kapitler:

  1. Grunnleggende Revisited
  2. Makefile Debugging
  3. Bygg og gjenoppbygging
  4. Fallgruver og problemer
  5. Skyve konvolutten
  6. GNU gjør standardbiblioteket

Jeg tror ikke at boken egentlig er rettet mot nybegynnere fordi det mangler visse avklaringer som du kan forvente når du lærer et nytt emne som "Hva er GNU Make?", "Hvordan lager jeg en Lag fil?", "Hvorfor bruker Gjøre bedre enn å kompilere hvert program en etter en? " og "Hvordan kompilerer jeg programmer ved hjelp av GNU Make?". Alle disse fagområdene er dekket i GNU Make-håndboken.

Det faktum at det første kapittelet heter "The Basics Revisited" i motsetning til "The Basics" viser tydelig at du forventes å ha en jording i emnet før du begynner.

Det første kapittelet dekker alle grunnleggende som bruk av variabler, miljøer som brukes av kommandoer og $ (Shell) miljøet. Etter hvert som kapittelet beveger seg, kommer du inn i emnet for sammenligning, lister og brukerdefinerte funksjoner.

Hvis du har brukt GNU Make for en liten stund, men ikke anser deg selv som en ekspert, er det noen gode tips og tips som vil hjelpe deg å forstå visse vanskeligheter som kanskje ikke er umiddelbart synlige.

Det andre kapitlet vil være en gave for de av dere som har forsøkt å fange feil i byggeskripter. "Makefile Debugging" -delen er full av gode tips og tips for feilsøking av Makefiles og inneholder seksjoner om utskrift av variable verdier og til og med dumping verdien av hver variabel. Videre inn i kapitlet, er det en veiledning til GNU Debugger som du kan bruke til å gå gjennom skript.

Det tredje kapittelet inneholder eksempel makefiles, men mer enn det viser deg hvordan du lager Makefiles som du kan kjøre igjen og igjen.

"Fallgruver og problemer" ser på forskjellene mellom bestemte termer som = og: =, og ifndef og? =.

Jeg fant da jeg gikk videre gjennom boken at fordi jeg ikke aktivt prøver å bruke GNU Make, og fordi min kunnskap er på et veldig grunnleggende nivå, gikk noe av emnet veldig mye over hodet mitt.

Da jeg kom til "Pushing The Envelope" -kapitlet, ble øynene mykt over noe.

Mitt hovedoppsummering, hvis jeg måtte oppsummere denne boken, er at forfatteren tydelig kjenner sine ting og har forsøkt å formidle så mye informasjon som mulig.

Problemet er at noen ganger når et fagpersonal forsøker å skrive noe ned, har de denne "oh det er lett, alt du trenger å gjøre er …." aura om dem.

Gummibeltet på bakdøren min kom ut i forrige uke, og som det er bare et par år, ringte jeg firmaet som monterte det som det fortsatt er i garanti.

Damen på telefonen sa: "Åh det er ok, jeg sender deg et nytt segl ut".

Jeg sa "Oh må jeg passe på det selv? Er det noe jeg kan gjøre?".

Svaret var: "Sikkert du kan, alt du trenger å gjøre er å ta av døra, passe på forseglingen og sette døren på igjen".

Nå var min øyeblikkelige tanke "woah, spole litt der. Ta av døren?!?". Jeg er ikke kvalifisert til å fjerne en dør, passe på en tetning og sette døren på plass. Jeg la det til ekspertene.

Med denne boken føler jeg at du trenger en annen bok og en viss erfaring med å skrive Makefiles før du finner det nyttig.

Jeg tror at hintene, tipsene og kunnskapene som tilbys vil hjelpe noen mennesker til å si "Oh, det er derfor det gjør det" eller "Jeg skjønte ikke at du kunne gjøre det på den måten".

Min vurdering er derfor at du bør kjøpe denne boken hvis du søker etter avklaring eller mer mellomliggende til avansert kunnskap på GNU Make, men det er ikke en bok for nybegynnere.