Zawsze powinieneś próbować zrozumieć używany system kompilacji.
To niekoniecznie oznacza, że musisz być w stanie ręcznie utworzyć wszystkie pliki kompilacji. Ważną częścią jest zrozumienie, co robi system kompilacji dla twojego projektu i ogólna umiejętność ręcznego kompilowania małych projektów (jak w „wpisywaniu poleceń na terminalu”).
Po prostu myślę, że tworzenie (prostych) plików Makefile jest najłatwiejszym krokiem do zrozumienia, co się dzieje, ale możesz mieć inne sposoby zrozumienia, jak budować różne rzeczy.
Dlaczego / kiedy uczyć się Makefiles
Jeśli nadal programujesz tylko dla systemu Windows i nie oczekujesz, że ktokolwiek skompiluje Twój kod, możesz go skompilować tak, jak chcesz.
Jeśli chcesz zaprogramować kompilator jako agnostyczny (jak w „pozwól innym decydować, jakiego kompilatora lub IDE chcą użyć”), powinieneś nauczyć się innego systemu kompilacji niż pozwolić swojemu IDE „sobie z tym poradzić”.
Jeśli chcesz programować na różne platformy, z pewnością musisz użyć szeroko rozpowszechnionego systemu kompilacji.
To wciąż nie oznacza, że musisz dokładnie wiedzieć, jak działają automatycznie generowane pliki Makefile. Musisz tylko wiedzieć, jak działają pliki wejściowe dla systemu kompilacji. Zdarza się, że czasami mają podobną składnię.
Osobiście bardzo lubię Makefiles i używam ich do wielu rzeczy. Nie tylko kompilowanie kodu. Tworzę plik Makefile dla każdego większego pliku pdf, który tworzę (z LaTeX) i dla każdego projektu, w którym muszę zautomatyzować kilka zadań (budowanie, pakowanie, przesyłanie, aktualizacja zależności z repozytoriów źródłowych, ręczne kopie zapasowe pull / push)
Jednak dużo pracuję na terminalu i pracuję z Linuksem. Nie używam tak zwanego IDE innego niż vim (potężny edytor tekstu) i narzędzia konsoli. To może być dla ciebie zupełnie inne.
Jeśli kiedykolwiek narzekałeś na konieczność uruchamiania różnych powtarzających się poleceń tylko w celu „zaktualizowania” / pakietu / przesłania / .. „projektu”, to nauka pisania plików Makefiles może być dla Ciebie pomocna.
Jeśli masz i używasz narzędzi / GUI / IDE do wszystkiego, możesz nie wyciągnąć niczego z tej wiedzy.