GNU Make Book - Demystifying Linux Build Automation

Sekä kirjoittaminen Linuxista että arvostelujen ja oppaiden kirjoittamisesta jakeluista ja työkaluista olen myös vahvasti mukana ohjelmistokehityksessä. Valitettavasti 99,9% ohjelmistokehityksestä tapahtuu Windows-alustalla.

Minulla on yli 20 vuoden kokemus C ++-, Visual Basic-, VB.NET- ja C # -kehittäjänä, ja olen myös DAB-käsi SQL Serverin kanssa sekä DBA: ksi että kehittäjänä.

Mitä en ole kovin hyvä, on Linux-ohjelmiston kehittäminen. Se on vain jotain, mitä en ole koskaan todella vaivautunut. Tärkein syy on se, että päivittäisen ohjelmiston kehittämisen jälkeen viimeinen asia, jonka haluan tehdä, on istua illan aikana kirjoittamalla lisää ohjelmistoja.

Minusta tuntuu siltä, ​​että pärjääminen scriptingilla ja kirjoittamalla outoa pienen ohjelman. Nämä ovat tavallisesti elektroniikkapohjaisia hankkeita Raspberry PI: ssä .

Yksi asia, että monet Windows-alustalla olevat kehittäjät joutuvat vaikeuksiin, kun he siirtyvät ensin Linuxiin, tutustuvat sovellusten rakentamiseen ja pakkaamiseen tarvittavista työkaluista.

Ylimmän helpoimman sovellustyypin kehittäminen on web-sovelluksia, koska yleensä ne eivät edellytä käännettyä koodia (PHP, Perl, Python) ja tiedostot siirretään tietylle paikalle web-palvelimelle.

Suuri määrä Linuxille rakennettuja sovelluksia kehitetään C-, C ++- tai Python-ohjelmilla. Yhden C-ohjelman kääntäminen on suhteellisen helppoa, mutta kun sinun on koottava useita C-ohjelmia, joissa on useita riippuvuuksia, asiat saavat hieman hankalia.

GNU Make on rakentaa automaation komentotiedostyökalu, joka auttaa sinua kokoamaan sovelluksesi yhä uudestaan ​​ja uudestaan ​​ja eri tavoin. Voit esimerkiksi antaa parametrin, joka arvosta riippuen kokoaa sovelluksen 64-bittisen tai 32-bittisen sovelluksen avulla.

GNU Make -kirjan on kirjoittanut John Graham-Cumming, joka auttaa GNU Make -yrityksen käyttäjiä ottamaan kiinteämmän otteen GNU Make -tuotteen monimutkaisuudesta.

Kirja jakautuu kuuteen jaksoon:

  1. Perusteet tarkistetaan
  2. Makefile Debugging
  3. Rakentaminen ja jälleenrakentaminen
  4. Animaatiot ja ongelmat
  5. Kirjekuorien työntäminen
  6. GNU: n vakiokirjasto

En usko, että kirja on todella suunnattu aloittelijoille, koska sillä ei ole tiettyjä selvennyksiä, joita voit odottaa uuden aiheen, kuten "Mikä on GNU Make?", "Miten luon Make-tiedosto?", "Miksi käytä Tee parempaa kuin kunkin ohjelman kokoaminen yksitellen? " ja "Miten voin kääntää ohjelmia GNU Make -ohjelmalla?". Kaikki nämä aihealueet kuuluvat GNU-käsikirjaan .

Se, että ensimmäinen luku on nimeltään "Basics Revisited", toisin kuin "Perusteet", osoittaa selvästi, että olette saaneet perustan aiheeseen ennen kuin aloitat.

Ensimmäinen luku kattaa kaikki perusasiat, kuten muuttujien käyttö, komentojen ja $ (Shell) ympäristön käyttämät ympäristöt. Kuten luvussa siirryt, pääset vertailuun, luetteloihin ja käyttäjän määritettyihin aiheisiin.

Jos olet käyttänyt GNU Makeä vähän aikaa, mutta älä vielä pidä itsesi asiantuntijana, on joitain hienoja vinkkejä ja vinkkejä, joiden avulla voit ymmärtää tiettyjä vaikeuksia, jotka eivät välttämättä ole välittömästi ilmeisiä.

Toinen luku on jumalatar niille teistä, jotka ovat yrittäneet kaapata virheitä rakentaa käsikirjoituksia. "Makefile Debugging" -osiossa on täynnä erinomaisia ​​vihjeitä ja vinkkejä Makefilesin vianmääritykseen, ja se sisältää osiot tulosmuuttujien tulostamisesta ja jopa laskemalla jokaisen muuttujan arvon. Seuraavassa kappaleessa on GNU-Debugger-oppaat, joiden avulla voit selata komentosarjoja.

Kolmas luku sisältää esimerkkejä makefileista, mutta enemmän kuin tämä osoittaa, kuinka voit luoda Makefileja, joita voit käyttää uudelleen ja uudelleen.

"Viat ja ongelmat" tarkastellaan eroja tiettyjen termien kuten = ja: =, ja ifndef ja? =.

Löysin, kun menin lähemmäksi kirjaa, koska koska en ole aktiivisesti yrittänyt käyttää GNU Makeä ja koska tietoni on hyvin perustasolla, osa aiheesta meni hyvin pääni yli.

Mennessäni "Pushing the Envelope" -kappaleen päähän silmäni laskeutui jonkin verran.

Tärkein yhteenveto, jos minun oli ymmärrettävä tämä kirja, on se, että kirjailija tuntee tietonsa ja yrittää välittää mahdollisimman paljon tietoa.

Ongelmana on, että joskus, kun aiheen asiantuntija yrittää kirjoittaa jotain, heillä on tämä "oh easy, all you have to do is ...." aura heistä.

Takaluukun kumitiiviste tuli viime viikolla ja koska se on vain pari vuotta vanha, soitin yritys, joka asensi sen, koska se on edelleen takuussa.

Puhelimessa oleva nainen sanoi: "Oi se on kunnossa, lähetän sinulle uuden sinetti".

Sanoin: "Osa minun täytyy sovittaa itselleni? Voinko tehdä jotain".

Vastaus oli: "Toki voit, kaikki mitä sinun tarvitsee tehdä on ottaa oven pois, asentaa sinetti ja asentaa ovi takaisin".

Nyt minun hetkinen ajatukseni oli "Woah, kelaa vähän takaisin siellä, ottakaa pois ovesta!?". Minulla ei ole oikeutta poistaa ovi, kiinnittää sinetti ja asentaa ovi uudelleen. Jätän sen asiantuntijoille.

Tämän kirjan kanssa tunnen, että tarvitset toisen kirjan ja tietyn määrän kokemuksia kirjallisesti Makefile-tiedostoista, ennen kuin löytäisit sen hyödylliseltä.

Mielestäni vinkit, vinkit ja tietämys auttaisivat jotkut sanovat: "Voi, niin siksi se ei niin" tai "En tiennyt, että voisitte tehdä niin".

Minun arviointini on siis, että sinun pitäisi ostaa tämä kirja, jos etsit selvennystä tai lisää välimuotoa edistyneeseen tietämykseen GNU Make, mutta se ei ole kirja aloittelijoille.