Przejdź do głównej zawartości

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ń.

Okno terminala
make [opcje] [cel ...]
  • Domyślnie uruchamia pierwszy cel zdefiniowany w Makefile.

ParametrOpis
-f plikOkreśla alternatywny plik Makefile
-j [N]Uruchamia równoległe zadania (opcjonalnie z liczbą procesów)
-nSymuluje wykonanie poleceń bez ich uruchamiania
-kKontynuuje budowanie po napotkaniu błędu
-C katalogUruchamia make w podanym katalogu
--debugWyświetla szczegółowe informacje debugowania
--helpWyświetla pomoc programu
--versionWyświetla wersję narzędzia

Okno terminala
# Kompilacja domyślnego celu z Makefile
make
# Uruchomienie konkretnego celu
make install
# Wskazanie alternatywnego pliku Makefile
make -f Makefile.dev
# Równoległa kompilacja na 4 rdzeniach
make -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.

Błąd / KomunikatPrzyczynaRozwiązanie
make: *** No targets specified and no makefile foundBrak pliku Makefile lub brak celówUtwórz Makefile lub wskaż właściwy plik opcją -f
make: *** No rule to make targetBrak reguły dla danego celuSprawdź nazwę celu w Makefile
Błędy kompilacjiProblem w kodzie źródłowymPopraw kod i ponów kompilację