make
- make – program automatyzujący proces kompilacji, uruchamiający odpowiednie polecenia w odpowiedniej kolejności na podstawie zależności i reguł zdefiniowanych w pliku Makefile.
- Pozwala skrócić czas budowania poprzez rekompilację tylko zmienionych plików.
- Popularny w projektach w C, C++, ale może być używany w dowolnych zadaniach wymagających określonej sekwencji działań.
Składnia
Dział zatytułowany „Składnia”make [opcje] [cel ...]
- Domyślnie uruchamia pierwszy cel zdefiniowany w Makefile.
Parametry
Dział zatytułowany „Parametry”Parametr | Opis |
---|---|
-f plik | Określa alternatywny plik Makefile |
-j [N] | Uruchamia równoległe zadania (opcjonalnie z liczbą procesów) |
-n | Symuluje wykonanie poleceń bez ich uruchamiania |
-k | Kontynuuje budowanie po napotkaniu błędu |
-C katalog | Uruchamia make w podanym katalogu |
--debug | Wyświetla szczegółowe informacje debugowania |
--help | Wyświetla pomoc programu |
--version | Wyświetla wersję narzędzia |
Przykłady użycia
Dział zatytułowany „Przykłady użycia”# Kompilacja domyślnego celu z Makefilemake
# Uruchomienie konkretnego celumake install
# Wskazanie alternatywnego pliku Makefilemake -f Makefile.dev
# Równoległa kompilacja na 4 rdzeniachmake -j4
- Pierwszy przykład buduje domyślny cel projektu.
- Drugi uruchamia instalację.
- Trzeci używa niestandardowego pliku Makefile.
- Czwarty przyspiesza kompilację dzięki równoległości.
- make opiera się na znaczkach czasowych plików – jeśli plik źródłowy jest nowszy od pliku wynikowego, następuje rekompilacja.
- Można go używać do automatyzacji zadań niezwiązanych z programowaniem.
Najczęściej spotykane błędy i jak je naprawić
Dział zatytułowany „Najczęściej spotykane błędy i jak je naprawić”Błąd / Komunikat | Przyczyna | Rozwiązanie |
---|---|---|
make: *** No targets specified and no makefile found | Brak pliku Makefile lub brak celów | Utwórz Makefile lub wskaż właściwy plik opcją -f |
make: *** No rule to make target | Brak reguły dla danego celu | Sprawdź nazwę celu w Makefile |
Błędy kompilacji | Problem w kodzie źródłowym | Popraw kod i ponów kompilację |
Linki i źródła
Dział zatytułowany „Linki i źródła”- man make – dokumentacja systemowa.
- GNU Make Manual – oficjalna dokumentacja GNU Make.
- Makefile Tutorial – przewodnik po Makefile.