Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 2340|Svar: 1

Introduktion till GCC, CMake, CMakelist, Make, Makefile och Ninja

[Kopiera länk]
Publicerad på 2024-07-09 20:44:28 | | |
1. GCC:s födelse!

1985, en mörk natt när hans fingrar var utom synhåll, började en märklig man med skägg, kort figur och rufsigt hår skriva en uppsättning C-språkskompilatorer. Denna efoni, senare känd som "den största programmeraren" och "fri mjukvarans fader", var Richard Stallman. Efter två års hårt arbete har Richard Stallman, som har längre skägg och rufsigare hår, färdigställt den första versionen av C-kompilatorn, som han kallar GNU C Complier, som nu är källan till den berömda GCC. Senare utvecklades GCC snabbt, och nu kan GCC kompilera inte bara C-språket, utan även C++, Fortran, Pascal, Objective-C, Java, Ada och andra språk. Under 80- och 90-talen under förra seklet mättes CPU-frekvens, hårddiskstorlek och minnesstorlek hos persondatorer alla i MB eller till och med KB, och antalet programfiler som behövde kompileras var litet, och GCC-kommandon räckte för att hantera det.

För det andra har nya problem dykt upp! (make & makefile)

Med förbättringen och populariseringen av datorprestanda innehåller ett mjukvaruprojekt fler och fler källfiler, såsom linux, vilket lätt är förvirrande och arbetsbelastat, vilket är lätt att förvirra och belasta, vilket gör folk galna.

Richard Stallman och Roland McGrath utvecklade tillsammans Make and Makefile för att lösa detta problem. Make Tool kan ses som ett intelligent batchbearbetningsverktyg, som inte har funktionen att kompilera och länka, utan använder en metod liknande batchbearbetning – genom att anropa de kommandon som användaren specificerar i makefile-filen. Vad är en makefile? Makefile är en skriptfil, precis som notet till en låt, make-verktyget är som en dirigent, dirigenten styr hela orkestern att spela enligt notet, och make-verktyget kompileras och länkas enligt kommandon i makefile. Kommandot makefile innehåller kommandon för att anropa gcc (eller en annan kompilator) för att kompilera en källfil.

3. Nya problem har uppstått igen! (Cmake & CMakelist)

Makefilen kan skrivas för hand under vissa enkla projekt, men när projektet är mycket stort är det också mycket besvärligt att skriva makefilen för hand. Och makefiler för olika plattformar har dykt upp en efter en, inklusive GNU make, QT:s qmake, Microsofts MSnmake, BSD Make(pmake), Makepp, etc. Dessa Make-verktyg följer olika specifikationer och standarder, och Makefile-formatet de använder varierar kraftigt. Detta utgör ett allvarligt problem: om mjukvaran vill vara plattformsoberoende måste den kunna kompilera på olika plattformar. Om du använder Make-verktyget ovan måste du skriva en makefile för varje standard, vilket blir ett galet jobb, och om du ändrar plattformsmakefilen måste du modifiera den igen.

Så, vid denna tidpunkt dök verktyget Cmake upp, och Cmake kan generera en makefile-fil för ovanstående make enklare. Självklart har cmake också andra funktioner, det vill säga att det kan generera makefiler som kan användas på motsvarande plattform över plattformar, och du behöver inte ändra det själv. cmake är det övre lagret i Makefile, och deras syfte är att producera portabla makefiler och förenkla den enorma arbetsbördan att skriva makefiler på egen hand. Men vad använder cmake för att generera en makefile? Den behöver också generera en makefile baserad på en fil som kallas CMakeLists.txt fil (vetenskapligt namn: konfigurationsfil). I slutändan CMakeLists.txt vem skriver dokumentet? Självklart skrev du den själv.

För det fjärde har nya problem dykt upp igen! (Ninja)

När mjukvaruteknik blir större och mer komplex blir problemet med långsam exekveringshastighet av tillverkning allt allvarligare.

Som ett resultat lanserade en Google-programmerare Ninja, ett byggverktyg med fokus på hastighet. Ninja har inte alla möjliga avancerade funktioner, syntaxen och användningen är väldigt enkel, och det specificerar vad som ska göras i detalj, så det börjar kompilera väldigt snabbt. Enligt verkliga tester: med mer än 30 000 källfiler är det också möjligt att starta en riktig build på 1 sekund. I kontrast tar Makefiles skrivna av seniora ingenjörer också 10–20 sekunder att börja bygga.

5. Det perfekta slutet hittills!

Cmake kan generera .ninja- och .makefile-verktyg. Eftersom många inte är bekanta med hur man skriver makefile-filer och ninja-filer behöver cmake bara en enkel beskrivning av källkodsfilen (det vill säga CMakeLists.txt fil) för att automatiskt generera en projekt-makefile- eller ninjafil, och sedan börja kompilera via ninja eller make.


5 minuter för att förstå make/makefile/cmake/nmake

Nyligen, har du blivit gjord av make, cmake, makefile... ... Dessa saker är yra, titta på följande artikel, kanske kan du förstå det tydligt.

1. GCC
Det är GNU Compiler Collection, eller helt enkelt en kompilator, som kan kompilera många programmeringsspråk (inklusive C, C++, Objective-C, Fortran, Java, etc.).

När vårt program bara har en källfil kan vi kompilera den direkt med kommandot gcc.

Men vad händer om vårt program innehåller många källfiler? När man kompilerar med gcc-kommandon ett och ett är det lätt att bli förvirrad och arbetsintensiv, så följande verktyg dyker upp.

2. skapa
Make Tool kan ses som ett intelligent batchbearbetningsverktyg, som inte har funktionen att kompilera och länka, utan använder en metod liknande batchbearbetning – genom att anropa de kommandon som användaren specificerar i makefile-filen.

3. Makefile
Vad är det här?

Enkelt uttryckt, precis som noten till en låt, är make-verktyget som en dirigent, dirigenten styr hela orkestern att spela enligt partituret, och make-verktyget sammanställer och länkar enligt kommandon i makefile. Kommandot makefile innehåller kommandon för att anropa gcc (eller en annan kompilator) för att kompilera en källfil.

Makefilen kan tas manuellt i vissa enkla projekt, men när projektet är mycket stort är handskriven makefile också mycket besvärlig.

4. Cmake
Cmake kan enkelt generera en makefile-fil för make-filen ovan. Självklart har cmake andra bättre funktioner, det vill säga att det kan generera makefiler som kan användas på motsvarande plattform över plattformar, så vi behöver inte modifiera det själva.

Men vad använder cmake för att generera en makefile? Den behöver också generera en makefile baserad på en fil som kallas CMakeLists.txt fil (vetenskapligt namn: konfigurationsfil).

5. CMakeList.txt
I slutändan CMakeLists.txt vem skriver dokumentet? Kära, det är skrivet av din egen hand.

6. nmake
Vad är nmake?

nmake är ett sidokommando i Microsoft Visual Studio, som måste installera VS, vilket faktiskt kan sägas vara likvärdigt med linuxs make, förstår du?

Överförd från:

Inloggningen med hyperlänken är synlig.
Inloggningen med hyperlänken är synlig.
Inloggningen med hyperlänken är synlig.





Föregående:ERP Kingdee Cloud Starry Sky (1) Enkel förståelse
Nästa:Rocky Linux 9-paket ej hittat: Ingen matchning för argumentet: xxx
 Hyresvärd| Publicerad på 2024-12-08 08:57:06 |
MinGW erbjuder en enkel och bekväm GCC-baserad programutvecklingsmiljö för Windows. MinGW samlar en samling gratis Windows-användarheader och biblioteksfiler; Den integrerar också GNU (http://www.gnu.org/) verktyg, särskilt GNU-utvecklingsverktyg som klassiska gcc, g++, make, etc. MinGW är helt fri programvara som simulerar GCC-utvecklingsmiljön under Linux på Windows-plattformen, ger bra grundläggande stöd för plattformsoberoende utveckling av C++ och ger förutsättningar för programmerare som arbetar under Windows att bekanta sig med C++-ingenjörsorganisationen under Linux.
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com