Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 2340|Svare: 1

Introduksjon til GCC, CMake, CMakelist, Make, Makefile og Ninja

[Kopier lenke]
Publisert på 09.07.2024 20:44:28 | | |
1. Fødselen av GCC!

I 1985, en mørk natt da fingrene hans var ute av syne, begynte en merkelig mann med skjegg, kort figur og bustete hår å skrive et sett med C-språkskompilatorer. Denne ekkonien, senere kjent som «den største programmereren» og «fri programvares far», var Richard Stallman. Etter to år med hardt arbeid har Richard Stallman, som har lengre skjegg og rotete hår, fullført den første versjonen av C-kompilatoren, som han kaller GNU C Complier, som nå er kilden til den berømte GCC. Senere utviklet GCC seg raskt, og nå kan GCC kompilere ikke bare C-språket, men også C++, Fortran, Pascal, Objective-C, Java, Ada og andre språk. På 80- og 90-tallet på forrige århundre ble CPU-frekvens, harddiskstørrelse og minnestørrelse på personlige datamaskiner alle målt i MB eller til og med KB, og antallet programfiler som måtte kompileres var lite, og GCC-kommandoer var nok til å håndtere det.

For det andre har nye problemer dukket opp! (make & makefile)

Med forbedringen og populariseringen av datamaskinytelse inneholder et programvareprosjekt stadig flere kildefiler, som Linux, som lett er forvirrende og arbeidsbelastende, som er lett å forveksle og arbeidsbelastning, noe som vil gjøre folk gale.

Richard Stallman og Roland McGrath utviklet sammen Make and Makefile for å løse dette problemet. Make-verktøyet kan sees på som et intelligent batchbehandlingsverktøy, som ikke har funksjonen å kompilere og lenke, men bruker en metode lik batchbehandling – ved å kalle kommandoene spesifisert av brukeren i makefile-filen. Hva er en makefile? Makefile er en skriptfil, ganske enkelt som partituret til en sang, make tool er som en dirigent, dirigenten instruerer hele orkesteret til å spille i henhold til partituret, og make tool kompileres og lenkes i henhold til kommandoene i makefile. Kommandoen makefile inneholder kommandoer for å kalle gcc (eller en annen kompilator) for å kompilere en kildefil.

3. Nye problemer har oppstått igjen! (Cmake & CMakelist)

Makefilen kan skrives for hånd under noen enkle prosjekter, men når prosjektet er veldig stort, er det også veldig vanskelig å skrive makefilen for hånd. Og makefiler for ulike plattformer har dukket opp én etter én, inkludert GNU make, QTs qmake, Microsofts MSnmake, BSD Make(pmake), Makepp, osv. Disse Make-verktøyene følger ulike spesifikasjoner og standarder, og Makefile-formatet de bruker varierer mye. Dette skaper et alvorlig problem: hvis programvaren ønsker å være plattformuavhengig, må den kunne kompilere på forskjellige plattformer. Hvis du bruker Make-verktøyet ovenfor, må du skrive en makefile for hver standard, noe som blir en vill jobb, og hvis du endrer plattform-makefilen, må du endre den på nytt.

Så, på dette tidspunktet dukket verktøyet Cmake opp, og Cmake kan generere en makefile-fil for maken ovenfor enklere. Selvfølgelig har cmake også andre funksjoner, det vil si at det kan generere makefiler som kan brukes på den tilsvarende plattformen på tvers av plattformer, og du trenger ikke å endre det selv. cmake er det øverste laget i Makefile, og deres formål er å produsere bærbare makefiler og forenkle den enorme arbeidsmengden det er å skrive makefiler alene. Men hva bruker cmake for å generere en makefile? Den må også generere en makefile basert på en fil kalt CMakeLists.txt fil (vitenskapelig navn: konfigurasjonsfil). Til slutt CMakeLists.txt hvem skriver dokumentet? Selvfølgelig skrev du det selv.

For det fjerde har nye problemer dukket opp igjen! (Ninja)

Etter hvert som programvareutvikling blir større og mer kompleks, blir problemet med lav produksjonshastighet stadig mer alvorlig.

Som et resultat lanserte en Google-programmerer Ninja, et byggeverktøy med fokus på hastighet. Ninja har ikke alle slags avanserte funksjoner, syntaksen og bruken er veldig enkel, og den spesifiserer hva som skal gjøres i detalj, så den begynner å kompilere veldig raskt. Ifølge virkelige tester: med mer enn 30 000 kildefiler er det også mulig å starte en reell bygging på ett sekund. Til sammenligning tar Makefiles skrevet av senioringeniører også 10-20 sekunder å begynne å bygge.

5. Den perfekte slutten så langt!

Cmake kan generere .ninja- og .makefile-verktøy. Fordi mange ikke er kjent med hvordan man skriver makefile-filer og ninja-filer, trenger cmake bare en enkel beskrivelse av kildekodefilen (altså CMakeLists.txt fil) for automatisk å generere en prosjekt-makefile- eller ninja-fil, og deretter begynne å kompilere gjennom ninja eller make.


5 minutter for å forstå make/makefile/cmake/nmake

Nylig, har du blitt laget av make, cmake, makefile... ... Disse tingene er svimmele, se på neste artikkel, kanskje du kan forstå det klart.

1. GCC
Det er GNU-kompilatorsamlingen, eller bare en kompilator, som kan kompilere mange programmeringsspråk (inkludert C, C++, Objective-C, Fortran, Java, osv.).

Når programmet vårt bare har én kildefil, kan vi kompilere den direkte med gcc-kommandoen.

Men hva om programmet vårt inneholder mange kildefiler? Når man kompilerer med gcc-kommandoer én etter én, er det lett å bli forvirret og arbeidskrevende, så følgende verktøy dukker opp.

2. lage
Make-verktøyet kan sees på som et intelligent batchbehandlingsverktøy, som ikke har funksjonen å kompilere og lenke, men bruker en metode lik batchbehandling – ved å kalle kommandoene spesifisert av brukeren i makefile-filen.

3. Makefile
Hva er dette?

Enkelt sagt, akkurat som partituret til en sang, er make tool som en dirigent, dirigenten styrer hele orkesteret til å spille i henhold til partituret, og make tool kompilerer og lenker etter kommandoene i makefile. Kommandoen makefile inneholder kommandoer for å kalle gcc (eller en annen kompilator) for å kompilere en kildefil.

Makefile kan tas manuelt i noen enkle prosjekter, men når prosjektet er veldig stort, er håndskrevet makefile også veldig problematisk.

4. Cmake
Cmake kan enkelt generere en makefile-fil for make-filen ovenfor. Selvfølgelig har cmake andre bedre funksjoner, det vil si at det kan generere makefiler som kan brukes på den tilsvarende plattformen på tvers av plattformer, så vi slipper å endre det selv.

Men hva bruker cmake for å generere en makefile? Den må også generere en makefile basert på en fil kalt CMakeLists.txt fil (vitenskapelig navn: konfigurasjonsfil).

5. CMakeList.txt
Til slutt CMakeLists.txt hvem skriver dokumentet? Kjære, det er skrevet med din egen hånd.

6. nmake
Hva er nmake?

nmake er en sidekommando i Microsoft Visual Studio, som må installeres VS, noe som faktisk kan sies å være ekvivalent med Linux sin make, skjønner du?

Overført fra:

Innloggingen med hyperkoblingen er synlig.
Innloggingen med hyperkoblingen er synlig.
Innloggingen med hyperkoblingen er synlig.





Foregående:ERP Kingdee Cloud Starry Sky (1) Enkel forståelse
Neste:Rocky Linux 9-pakke ikke funnet: Ingen match for argumentet: xxx
 Vert| Publisert på 08.12.2024 08:57:06 |
MinGW tilbyr et enkelt og praktisk GCC-basert programutviklingsmiljø for Windows. MinGW samler en samling av gratis Windows-brukerheader- og bibliotekfiler; Den integrerer også GNU (http://www.gnu.org/) verktøy, spesielt GNU-utviklingsverktøy som klassisk gcc, g++, make, osv. MinGW er helt fri programvare som simulerer GCC-utviklingsmiljøet under Linux på Windows-plattformen, gir god grunnleggende støtte for plattformuavhengig utvikling av C++, og gir betingelser for programmerere som jobber under Windows for å bli kjent med C++-ingeniørorganisasjonen under Linux.
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com