Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 2340|Odpowiedź: 1

Wprowadzenie do GCC, CMake, CMakelist, Make, Makefile i Ninja

[Skopiuj link]
Opublikowano 09.07.2024 20:44:28 | | |
1. Narodziny GCC!

W 1985 roku, w ciemną noc, gdy palce były poza zasięgiem wzroku, dziwny mężczyzna z brodą, niską sylwetką i potarganymi włosami zaczął pisać zestaw kompilatorów w języku C. Ta ekfonia, później znana jako "największy programista" i "ojciec wolnego oprogramowania", to Richard Stallman. Po dwóch latach ciężkiej pracy Richard Stallman, który ma dłuższą brodę i bardziej potargane włosy, ukończył pierwszą wersję kompilatora C, którą nazywa GNU C Complier, będącą obecnie źródłem słynnego GCC. Później GCC rozwijał się bardzo szybko, a obecnie GCC może kompilować nie tylko język C, ale także C++, Fortran, Pascal, Objective-C, Java, Ada i inne. W latach 80. i 90. ubiegłego wieku częstotliwość procesora, rozmiar dysku twardego i rozmiar pamięci komputerów osobistych były mierzone w MB lub nawet KB, a liczba plików programowych do skompilowania była niewielka, a polecenia GCC wystarczały do ich obsłudzenia.

Po drugie, pojawiły się nowe problemy! (Make & makefile)

Wraz z poprawą i popularyzacją wydajności komputerów, projekt oprogramowania zawiera coraz więcej plików źródłowych, takich jak Linux, co łatwo mylić i obciążać, łatwo mylić i obciążać, co może doprowadzić ludzi do szaleństwa.

Richard Stallman i Roland McGrath wspólnie opracowali make and makefile, aby rozwiązać ten problem. Narzędzie make można postrzegać jako inteligentne narzędzie do przetwarzania wsadowego, które nie pełni funkcji kompilacji i linkowania, lecz wykorzystuje metodę podobną do przetwarzania wsadowego – poprzez wywoływanie poleceń określonych przez użytkownika w pliku makefile. Czym jest makefile? Makefile to plik skryptowy, podobnie jak partytura piosenki, narzędzie make działa jak dyrygent, dyrygent kieruje całą orkiestrą grą zgodnie z partyturą, a make tool jest kompilowany i łączony zgodnie z poleceniami w pliku makefile. Polecenie makefile zawiera polecenia do wywołania gcc (lub innego kompilatora) w celu skompilowania pliku źródłowego.

3. Znów pojawiły się nowe kłopoty! (Cmake & CMakelist)

Makefile można napisać ręcznie w niektórych prostych projektach, ale gdy projekt jest bardzo duży, pisanie go ręcznie jest również bardzo uciążliwe. A pliki makefile dla różnych platform pojawiały się jeden po drugim, w tym GNU make, qmake QT, MSnmake Microsoftu, BSD Make(pmake), Makepp i inne. Te narzędzia Make spełniają różne specyfikacje i standardy, a format Makefile, który wykonują, jest bardzo zróżnicowany. To stanowi poważny problem: jeśli oprogramowanie chce być wieloplatformowe, musi umieć kompilować na różnych platformach. Jeśli użyjesz narzędzia Make powyżej, musisz napisać plik makefile dla każdego standardu, co będzie szalonym zadaniem, a jeśli zmienisz plik platformy, będziesz musiał go ponownie zmodyfikować.

W tym czasie pojawiło się narzędzie Cmake i Cmake może łatwiej wygenerować plik makefile dla powyższego modelu. Oczywiście cmake ma też inne funkcje, czyli może generować pliki make, które można używać na odpowiedniej platformie na różnych platformach i nie musisz ich sam modyfikować. cmake to górna warstwa Makefile, a ich celem jest tworzenie przenośnych plików makefile i uproszczenie ogromnego obciążenia pisania plików samodzielnie. Ale czego cmake używa do wygenerowania pliku makefile? Musi także wygenerować plik makefile oparty na pliku o nazwie CMakeLists.txt file (nazwa naukowa: plik konfiguracyjny). Ostatecznie CMakeLists.txt kto pisze dokument? Oczywiście, napisałeś to sam.

Po czwarte, znów pojawiły się nowe kłopoty! (Ninja)

W miarę jak inżynieria oprogramowania staje się coraz większa i bardziej złożona, problem powolnego tempa realizacji staje się coraz poważniejszy.

W rezultacie programista Google uruchomił Ninja, narzędzie do tworzenia komputerów nastawione na szybkość. Ninja nie ma wielu zaawansowanych funkcji, składnia i sposób użycia są bardzo proste, a szczegółowo określa, co robić, więc kompilacja zaczyna się bardzo szybko. Według testów z rzeczywistego świata: przy ponad 30 000 plików źródłowych, możliwe jest także rozpoczęcie prawdziwej budowy w ciągu 1 sekundy. Dla porównania, pliki Makefile napisane przez starszych inżynierów również zajmują 10-20 sekund na rozpoczęcie budowy.

5. Idealne zakończenie jak dotąd!

Cmake potrafi generować narzędzia .ninja i .makefile. Ponieważ wiele osób nie zna się na pisaniu plików makefile i ninja, cmake potrzebuje tylko prostego opisu pliku kodu źródłowego (czyli CMakeLists.txt pliku), aby automatycznie wygenerować plik make make lub ninja file, a następnie zacząć kompilację przez ninja lub make.


5 minut na zrozumienie make/makefile/cmake/nmake

Ostatnio, czy zostałeś stworzony przez make, cmake, makefile... ... Te rzeczy są zawrotne, zobacz poniższy artykuł, może zrozumiesz to jasno.

1. GCC
Jest to GNU Compiler Collection, czyli po prostu kompilator, który potrafi kompilować wiele języków programowania (w tym C, C++, Objective-C, Fortran, Java itd.).

Gdy nasz program ma tylko jeden plik źródłowy, możemy go skompilować bezpośrednio za pomocą polecenia gcc.

Ale co jeśli nasz program zawiera wiele plików źródłowych? Podczas kompilacji za pomocą poleceń gcc pojedynczo łatwo się pogubić i pochłonąć pracą, dlatego pojawia się następujące narzędzie do tworzenia narzędzi.

2. Zrobić
Narzędzie make można postrzegać jako inteligentne narzędzie do przetwarzania wsadowego, które nie pełni funkcji kompilacji i linkowania, lecz wykorzystuje metodę podobną do przetwarzania wsadowego – poprzez wywoływanie poleceń określonych przez użytkownika w pliku makefile.

3. Makefile
Co to jest?

Mówiąc wprost, podobnie jak partytura utworu, narzędzie make jest jak dyrygent – dyrygent kieruje całą orkiestrą, by grała zgodnie z partyturą, a narzędzie make kompiluje i łączy się zgodnie z poleceniami w pliku makefile. Polecenie makefile zawiera polecenia do wywołania gcc (lub innego kompilatora) w celu skompilowania pliku źródłowego.

Plik makefile można wykonać ręcznie w niektórych prostych projektach, ale gdy projekt jest bardzo duży, ręcznie pisany makefile również jest bardzo problematyczny.

4. cmake
cmake może łatwo wygenerować plik makefile dla powyższego MEK. Oczywiście cmake ma też inne lepsze funkcje, czyli może generować pliki make, które można używać na odpowiedniej platformie na różnych platformach, więc nie musimy sami go modyfikować.

Ale czego cmake używa do wygenerowania pliku makefile? Musi także wygenerować plik makefile oparty na pliku o nazwie CMakeLists.txt file (nazwa naukowa: plik konfiguracyjny).

5. CMakeList.txt
Ostatecznie CMakeLists.txt kto pisze dokument? Kochanie, to napisane twoją własną ręką.

6. nmake
Czym jest nmake?

nmake to poboczne polecenie w Microsoft Visual Studio, które wymaga instalacji VS, co można uznać za równoważne z Linuxem Make, rozumiesz?

Przeniesiono z:

Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.





Poprzedni:ERP Kingdee Cloud Starry Sky (1) Proste zrozumienie
Następny:Pakiet Rocky Linux 9 nie znaleziony: Brak możliwości argumentacji: xxx
 Ziemianin| Opublikowano 08.12.2024 08:57:06 |
MinGW oferuje proste i wygodne środowisko programistyczne oparte na GCC dla Windows. MinGW zbiera kolekcję darmowych plików nagłówków i bibliotek z użyciem Windows; Integruje także GNU (http://www.gnu.org/) narzędzi, zwłaszcza narzędzi programistycznych GNU, takich jak klasyczny gcc, g++, make itd. MinGW to całkowicie wolne oprogramowanie, które symuluje środowisko programistyczne GCC pod Linuksem na platformie Windows, zapewniając solidne podstawowe wsparcie dla rozwoju C++ na różnych platformach oraz zapewniając warunki programistom pracującym pod Windows, aby mogli zapoznać się z organizacją inżynieryjną C++ pod Linuksem.
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com