Loading AI tools
narzędzie do automatyzacji kompilowania programów Z Wikipedii, wolnej encyklopedii
make – program powłoki systemowej automatyzujący i przyspieszający proces kompilacji złożonych programów i bibliotek. Make nadaje się również do innych prac, które wymagają przetwarzania wielu plików zależnych od siebie.
Program przetwarza plik reguł Makefile i na tej podstawie stwierdza, które pliki źródłowe wymagają kompilacji. Zaoszczędza to wiele czasu przy tworzeniu programu, ponieważ w wyniku zmiany pliku źródłowego kompilowane są tylko te pliki, które są zależne od tego pliku. Dzięki temu nie ma potrzeby kompilacji całego projektu.
Istnieje kilka implementacji make jak np.:
Makefile to plik reguł dla programu make. Zawiera opis zależności pomiędzy plikami źródłowymi programu. Umożliwia to przetwarzanie tylko tych plików, które się zmieniły od ostatniej kompilacji i plików od nich zależnych. Skraca to znacznie czas generowania pliku wynikowego.
Format pliku różni się w zależności od implementacji programu make, ale podstawowe reguły są takie same dla wszystkich odmian make.
W złożonych projektach informatycznych istnieje zazwyczaj kilka plików reguł, odpowiedzialnych za tworzenie poszczególnych modułów. Plik reguł jest często nazywany Makefile
– program make wywołany bez parametrów rozpoczyna przetwarzanie pliku o takiej właśnie nazwie.
Poniższa reguła opisuje zależności między plikami:
helloworld.o: helloworld.c
cc -c helloworld.c -o helloworld.o
W pierwszej linii znajduje się informacja, że plik helloworld.o zależy od pliku helloworld.c - czyli jeśli helloworld.c jest nowszy, to program make powinien wykonać polecenie znajdujące się w linii poniżej zależności.
Linia opisująca polecenie musi zaczynać się od znaku tabulacji (inna składnia jest częstym błędem).
Make dla uproszczenia zapisu pozwala na użycie symbolicznych nazw dla plików, przykładowo:
Powyższy przykład można przepisać:
helloworld.o: helloworld.c
cc -c $< -o $@
Poniżej znajduje się plik makefile, który:
helloworld: helloworld.o
cc -o $@ $<
helloworld.o: helloworld.c
cc -c -o $@ $<
.PHONY: clean
clean:
rm -f helloworld helloworld.o
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.