1. GCC's fødsel!
I 1985, på en mørk nat, hvor hans fingre var ude af syne, begyndte en mærkelig mand med skæg, kort figur og rodet hår at skrive et sæt C-sprogs compilere. Denne epokoni, senere kendt som "den største programmør" og "fri softwares fader", var Richard Stallman. Efter to års hårdt arbejde har Richard Stallman, som har længere skæg og mere rodet hår, færdiggjort den første version af C-compileren, som han kalder GNU C Complier, og som nu er kilden til den berømte GCC. Senere udviklede GCC sig hurtigt, og nu kan GCC ikke kun kompilere C-sproget, men også C++, Fortran, Pascal, Objective-C, Java, Ada og andre sprog. I 80'erne og 90'erne i det forrige århundrede blev CPU-frekvens, harddiskstørrelse og hukommelsesstørrelse på personlige computere alle målt i MB eller endda KB, og antallet af programfiler, der skulle kompileres, var lille, og GCC-kommandoer var nok til at håndtere det.
For det andet er nye problemer dukket op! (lav og lav fil)
Med forbedringen og udbredelsen af computerydelse indeholder et softwareprojekt flere og flere kildefiler, såsom linux, som let er forvirrende og arbejdsbyrdet, hvilket er let at forvirre og belaste, hvilket vil gøre folk skøre.
Richard Stallman og Roland McGrath udviklede sammen Make and Makefile for at løse dette problem. Make-værktøjet kan ses som et intelligent batchbehandlingsværktøj, som ikke har funktionen at kompilere og linke, men bruger en metode, der ligner batchbehandling – ved at kalde de kommandoer, brugeren har angivet i makefile-filen. Hvad er en makefile? Makefile er en scriptfil, ligesom scoret til en sang, make tool er som en dirigent, dirigenten instruerer hele orkestret til at spille efter scoret, og make tool kompileres og linkes efter kommandoerne i makefile. Kommandoen makefile indeholder kommandoer til at kalde gcc (eller en anden compiler) for at kompilere en kildefil.
3. Nye problemer er opstået igen! (Cmake & CMakelist)
Makefilen kan skrives i hånden under nogle simple projekter, men når projektet er meget stort, er det også meget besværligt at skrive makefilen i hånden. Og makefiler til forskellige platforme er dukket op én efter én, herunder GNU make, QT's qmake, Microsofts MSnmake, BSD Make(pmake), Makepp osv. Disse Make-værktøjer følger forskellige specifikationer og standarder, og det Makefile-format, de udfører, varierer meget. Dette udgør et alvorligt problem: hvis softwaren vil være platformoverskridende, skal den kunne kompilere på forskellige platforme. Hvis du bruger Make-værktøjet ovenfor, skal du skrive en makefile for hver standard, hvilket bliver et vanvittigt arbejde, og hvis du ændrer platformens makefile, skal du ændre den igen.
Så på dette tidspunkt dukkede værktøjet Cmake op, og Cmake kan lettere generere en makefile-fil til ovenstående make. Selvfølgelig har cmake også andre funktioner, det vil sige, at det kan generere makefiles, der kan bruges på den tilsvarende platform på tværs af platforme, og du behøver ikke selv ændre det. cmake er det øverste lag af Makefile, og deres formål er at producere bærbare makefiles og forenkle den enorme arbejdsbyrde ved at skrive makefiles alene. Men hvad bruger cmake til at generere en makefile? Den skal også generere en makefile baseret på en fil kaldet CMakeLists.txt fil (videnskabeligt navn: konfigurationsfil). I sidste ende CMakeLists.txt hvem skriver dokumentet? Selvfølgelig skrev du det selv.
For det fjerde er nye problemer dukket op igen! (Ninja)
Efterhånden som softwareudvikling bliver større og mere kompleks, bliver problemet med langsom udførelseshastighed af make mere og mere alvorligt.
Som følge heraf lancerede en Google-programmør Ninja, et byggeværktøj med fokus på hastighed. Ninja har ikke alle mulige avancerede funktioner, syntaksen og brugen er meget enkel, og det specificerer detaljeret, hvad der skal gøres, så det begynder at kompilere meget hurtigt. Ifølge virkelige tests: med mere end 30.000 kildefiler er det også muligt at starte en rigtig build på 1 sekund. Til sammenligning tager Makefiles skrevet af erfarne ingeniører også 10-20 sekunder at begynde at bygge.
5. Den perfekte slutning indtil videre!
Cmake kan generere .ninja- og .makefile-værktøjer. Fordi mange ikke er fortrolige med, hvordan man skriver makefile- og ninjafiler, behøver cmake kun en simpel beskrivelse af kildekodefilen (altså CMakeLists.txt fil) for automatisk at generere en projekt-makefile- eller ninjafil og derefter begynde at kompilere gennem ninja eller make.
5 minutter til at forstå make/makefile/cmake/nmake
Er du for nylig blevet lavet af make, cmake, makefile... ... Disse ting er svimmel, se næste artikel, måske kan du forstå det klart.
1. GCC Det er GNU-kompilatorsamlingen, eller blot en kompilator, som kan kompilere mange programmeringssprog (herunder C, C++, Objective-C, Fortran, Java osv.).
Når vores program kun har én kildefil, kan vi kompilere den direkte med gcc-kommandoen.
Men hvad nu hvis vores program indeholder mange kildefiler? Når man kompilerer med gcc-kommandoer én ad gangen, er det let at blive forvirret og arbejdskrævende, så følgende værktøj dukker op.
2. Lav Make-værktøjet kan ses som et intelligent batchbehandlingsværktøj, som ikke har funktionen at kompilere og linke, men bruger en metode, der ligner batchbehandling – ved at kalde de kommandoer, brugeren har angivet i makefile-filen.
3. Makefile Hvad er dette?
Kort sagt, ligesom med partituret til en sang, er make tool som en dirigent, dirigenten leder hele orkestret til at spille i overensstemmelse med partituret, og make tool samler og linker efter kommandoerne i makefile. Kommandoen makefile indeholder kommandoer til at kalde gcc (eller en anden compiler) for at kompilere en kildefil.
Makefilen kan tages manuelt i nogle simple projekter, men når projektet er meget stort, er håndskrevet makefile også meget besværligt.
4. Cmake Cmake kan nemt generere en makefile-fil til make-filen ovenfor. Selvfølgelig har cmake andre bedre funktioner, nemlig at det kan generere makefiler, der kan bruges på den tilsvarende platform på tværs af platforme, så vi ikke behøver at ændre det selv.
Men hvad bruger cmake til at generere en makefile? Den skal også generere en makefile baseret på en fil kaldet CMakeLists.txt fil (videnskabeligt navn: konfigurationsfil).
5. CMakeList.txt I sidste ende CMakeLists.txt hvem skriver dokumentet? Kære, det er skrevet med din egen hånd.
6. nmake Hvad er nmake?
nmake er en sidekommando i Microsoft Visual Studio, som skal installere VS, hvilket faktisk kan siges at være ækvivalent med linuxs make, forstået?
Overført fra:
Hyperlink-login er synlig.
Hyperlink-login er synlig.
Hyperlink-login er synlig.
|