Skip to main content

The GNU Make Book - Demistifying Linux Build Automation

Install and configure JACK audio server | Tutorials (Czerwiec 2026)

Install and configure JACK audio server | Tutorials (Czerwiec 2026)
Anonim

Poza pisaniem o Linuksie oraz pisaniem recenzji i samouczków na temat dystrybucji i narzędzi, jestem również mocno zaangażowany w tworzenie oprogramowania. Niestety, 99,9% tego rozwoju oprogramowania odbywa się na platformie Windows.

Mam ponad 20-letnie doświadczenie jako programista C ++, Visual Basic, VB.NET i C #, a także korzystam z SQL Server zarówno jako administrator DBA, jak i programista.

To, w czym nie jestem dobry, to tworzenie oprogramowania dla Linuksa. To jest po prostu coś, z czym nigdy się nie przejmowałem. Głównym powodem jest to, że po opracowaniu oprogramowania w ciągu dnia ostatnią rzeczą, którą chcę zrobić, to siedzieć wieczorem, pisząc więcej oprogramowania.

Ja oczywiście lubię majsterkować przy pisaniu scenariuszy i pisaniu dziwnego małego programu. Są to zwykle projekty oparte na elektronice na Raspberry PI.

Jedną rzeczą, z którą wielu programistów na platformie Windows będzie miało problemy, gdy po raz pierwszy przejdą na Linuksa, jest poznanie narzędzi wymaganych do budowania i pakowania aplikacji.

Zdecydowanie najprostszym rodzajem aplikacji do opracowania są aplikacje internetowe, ponieważ generalnie nie wymagają one skompilowanego kodu (PHP, Perl, Python), a pliki są wdrażane w określonym miejscu na serwerze sieciowym.

Wiele aplikacji zbudowanych dla systemu Linux jest opracowywanych przy użyciu C, C ++ lub Python. Kompilowanie pojedynczego programu C jest stosunkowo łatwe, ale gdy trzeba skompilować wiele programów C z wieloma zależnościami, sytuacja staje się nieco trudniejsza.

GNU Make to narzędzie do tworzenia skryptów automatyzacji budowania, które pomaga w kompilowaniu aplikacji wielokrotnie i na różne sposoby. Na przykład możesz podać parametr, który w zależności od wartości skompiluje aplikację przy użyciu 64-bitowej lub 32-bitowej.

Książka GNU Make została napisana przez Johna Grahama-Cumminga, aby pomóc użytkownikom GNU Make uzyskać mocniejszą kontrolę nad złożonością związaną z GNU Make.

Książka podzielona jest na sześć rozdziałów:

  1. Podstawy ponownie zrewidowane
  2. Makefile Debugowanie
  3. Budowa i przebudowa
  4. Pułapki i problemy
  5. Naciskając kopertę
  6. Biblioteka GNU Make Standard

Nie wierzę, że książka jest przeznaczona dla początkujących, ponieważ brakuje w niej pewnych wyjaśnień, których można się spodziewać, ucząc się nowego przedmiotu, takiego jak "Czym jest GNU Make?", "Jak utworzyć plik Make?", "Dlaczego korzysta Lepiej niż kompiluje każdy program jeden po drugim? " i "Jak skompilować programy za pomocą GNU Make?". Wszystkie te obszary tematyczne zostały opisane w podręczniku GNU Make.

Fakt, że pierwszy rozdział nosi tytuł "Odnowione podstawy", w przeciwieństwie do "Podstawy", wyraźnie pokazuje, że od samego początku oczekuje się, że ma się podstawy w tej kwestii.

Pierwszy rozdział zawiera wszystkie podstawowe informacje, takie jak użycie zmiennych, środowiska używane przez polecenia i środowisko $ (Shell). Gdy rozdział się porusza, wchodzisz w temat porównywania, list i funkcji zdefiniowanych przez użytkownika.

Jeśli używasz GNU Make od jakiegoś czasu, ale nie uważasz się jeszcze za eksperta, istnieją pewne dobre wskazówki i wskazówki, które pomogą ci zrozumieć pewne zawiłości, które mogą nie być od razu widoczne.

Drugi rozdział będzie darem niebios dla tych z was, którzy próbowali przechwycić błędy w skryptach budujących. Sekcja "Makefile Debugging" zawiera doskonałe wskazówki i porady dotyczące debugowania Makefiles i zawiera sekcje dotyczące drukowania wartości zmiennych, a nawet odrzucania wartości każdej zmiennej. W dalszej części rozdziału znajduje się przewodnik do Debuggera GNU, za pomocą którego można przejść do skryptów.

Trzeci rozdział zawiera przykłady plików Makefile, ale więcej pokazuje, jak tworzyć pliki Makefile, które możesz uruchamiać wielokrotnie.

"Pułapki i problemy" analizuje różnice między określonymi pojęciami, takimi jak = i: =, ifndef i? =.

Zauważyłem, że przeszedłem dalej w tej książce, ponieważ nie aktywnie próbuję używać GNU Make, a ponieważ moja wiedza jest na bardzo podstawowym poziomie, niektóre z tematów przeszły bardzo dużo ponad moją głowę.

Zanim doszedłem do rozdziału "Pushing The Envelope" moje oczy trochę się zaszkliły.

Moim głównym podsumowaniem, gdybym musiał podsumować tę książkę, jest to, że autor wyraźnie zna się na swoich rzeczach i próbował przekazać jak najwięcej informacji.

Problem polega na tym, że czasami, gdy ekspert przedmiotu próbuje coś napisać, ma to "o, to jest łatwe, wszystko, co musisz zrobić, to jest …" aura wokół nich.

Gumowa plomba na moich tylnych drzwiach wyszła w zeszłym tygodniu, a ponieważ jest to zaledwie kilka lat, zadzwoniłem do firmy, która go wyposażyła, ponieważ wciąż jest w gwarancji.

Pani w telefonie powiedziała: "O, to jest w porządku, wyślę ci nową pieczęć".

Powiedziałem: "Och, muszę sam to dopasować?" To jest coś, co mogę zrobić.

Odpowiedź brzmiała: "Oczywiście, możesz, wystarczy, że zdejmiesz drzwi, założysz pieczęć i ponownie włączysz drzwi".

Teraz moja natychmiastowa myśl brzmiała: "Ooo, przewiń trochę tam, zdejmij drzwi?!". Nie mam kwalifikacji do zdjęcia drzwi, zamontowania uszczelki i montażu drzwi. Zostawiam to ekspertom.

W tej książce czuję, że potrzebujesz innej książki i pewnej dozy doświadczenia w pisaniu plików Makefile, zanim uznasz to za przydatne.

Myślę, że wskazówki, porady i dostarczona wiedza pomogłyby niektórym ludziom powiedzieć "Och, więc dlatego tak to robi" lub "Nie zdawałem sobie sprawy, że możesz to zrobić w ten sposób".

Moja ocena jest taka, że ​​powinieneś kupić tę książkę, jeśli szukasz wyjaśnienia lub bardziej zaawansowanej lub zaawansowanej wiedzy o GNU Make, ale nie jest to książka dla początkujących.