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