1. GCC sünd!
1985. aastal, pimedal ööl, kui tema sõrmed olid silmapiirilt kadunud, hakkas kummaline mees habemega, lühikese figuuriga ja sassis juustega kirjutama komplekti C-keele kompilaatorit. See efonia, hiljem tuntud kui "suurim programmeerija" ja "vaba tarkvara isa", oli Richard Stallman. Pärast kahte aastat rasket tööd on Richard Stallman, kellel on pikem habe ja sassis juuksed, valmis C kompilaatori esimese versiooni, mida ta nimetab GNU C Complieriks, mis on nüüd kuulsa GCC allikas. Hiljem arenes GCC kiiresti ning nüüd suudab GCC kompileerida mitte ainult C-keelt, vaid ka C++, Fortran, Pascal, Objective-C, Java, Ada ja teisi keeli. Eelmise sajandi 80ndatel ja 90ndatel mõõdeti personaalarvutite protsessori sagedust, kõvaketta suurust ja mälu suurust MB-des või isegi KB-s ning kompileeritavate programmifailide arv oli väike ja GCC käskudest piisasid selle lahendamiseks.
Teiseks on ilmunud uued probleemid! (tee ja tee fail)
Arvuti jõudluse paranemise ja populaarsuse suurenedes sisaldab tarkvaraprojekt üha rohkem lähtefaile, näiteks Linuxi, mis on kergesti segadust tekitav ja töökoormatud, mis on kergesti segadust tekitav ja töökoormatud, mis ajab inimesed hulluks.
Richard Stallman ja Roland McGrath töötasid koos välja make and makefile'i selle probleemi lahendamiseks. Make-tööriista võib vaadelda kui intelligentset partiitöötluse tööriista, millel puudub kompileerimise ja linkimise funktsioon, vaid kasutab meetodit, mis sarnaneb partiitöötlusega – kutsudes kasutaja poolt makefile-failis määratud käske. Mis on makefile? Makefile on stsenaariumifail, nagu laulu partituur, loomistööriist on nagu dirigent, dirigent juhib kogu orkestrit mängima vastavalt partituurile ning loomise tööriist kompileeritakse ja lingitakse vastavalt makefile'i käskudele. Makefile käsk sisaldab käske kutsuda gcc (või mõni teine kompilaatori) lähtefaili kompileerimiseks.
3. Uued probleemid on jälle tekkinud! (Cmake & CMakelist)
Makefile'i saab käsitsi kirjutada mõne lihtsa projekti all, kuid kui projekt on väga suur, on käsitsi kirjutamine samuti väga tülikas. Ja erinevate platvormide makefile'id on ilmunud järjest, sealhulgas GNU make, QT qmake, Microsofti MSnmake, BSD Make(pmake), Makepp jne. Need Make-tööriistad järgivad erinevaid spetsifikatsioone ja standardeid ning nende Makefile-formaat varieerub suuresti. See tekitab tõsise probleemi: kui tarkvara tahab olla platvormideülene, peab see suutma kompileerida erinevatel platvormidel. Kui kasutad ülaltoodud Make tööriista, pead iga standardi jaoks kirjutama makefile'i, mis on hullumeelne töö, ja kui muudad platvormi makefile'i, pead seda uuesti muutma.
Sel ajal ilmus tööriist Cmake, ja Cmake suudab selle jaoks lihtsamini genereerida makefile'i faili. Loomulikult on cmake'il ka muid funktsioone, st see saab genereerida make-faile, mida saab kasutada vastaval platvormil erinevatel platvormidel, ja sa ei pea seda ise muutma. cmake on Makefile'i ülemine kiht ning nende eesmärk on luua kaasaskantavaid makefaile ja lihtsustada tohutut töökoormust, mis kaasneb iseseisvalt makefile'i kirjutamisega. Aga mida kasutab cmake makefile'i genereerimiseks? Samuti peab ta genereerima makefile'i faili põhjal nimega CMakeLists.txt fail (teaduslik nimi: konfiguratsioonifail). Lõpuks CMakeLists.txt kes selle dokumendi kirjutab? Muidugi, sa kirjutasid selle ise.
Neljandaks, uued probleemid on taas ilmunud! (Ninja)
Mida suuremaks ja keerukamaks tarkvaraarendus muutub, seda tõsisemaks muutub aeglase teostuse kiiruse probleem.
Selle tulemusena käivitas Google'i programmeerija Ninja, kiirusele keskenduva ehitustööriista. Ninjal pole kõiki arenenud funktsioone, süntaks ja kasutus on väga lihtsad ning see määrab täpselt, mida teha, nii et kompileerimine algab väga kiiresti. Reaalse maailma testide kohaselt: enam kui 30 000 lähtefailiga on võimalik alustada päris ehitust ühe sekundiga. Vastupidiselt sellele võtavad vanemate inseneride kirjutatud Makefile'id ehitamise alustamiseks 10–20 sekundit.
5. Täiuslik lõpp seni!
Cmake suudab genereerida .ninja ja .makefile tööriistu. Kuna paljud inimesed ei tunne, kuidas kirjutada makefile faile ja ninja-faile, vajab cmake lihtsalt lihtsat kirjeldust lähtekoodifailist (st CMakeLists.txt failist), et automaatselt genereerida projekti makefile või ninja fail ning alustada kompileerimist ninja või make'i kaudu.
5 minutit, et mõista make/makefile/cmake/nmake
Viimasel ajal, kas sind on tehtud make, cmake, makefile... ... Need asjad on pööritavad, vaata järgmist artiklit, võib-olla saad aru.
1. GCC See on GNU kompilaatorite kogu ehk lihtsalt kompilaator, mis suudab kompileerida mitmeid programmeerimiskeeli (sh C, C++, Objective-C, Fortran, Java jne).
Kui meie programmil on ainult üks lähtefail, saame selle otse gcc käsuga kompileerida.
Aga mis siis, kui meie programm sisaldab palju lähtefaile? Kui kompileerida gcc käske ükshaaval, on lihtne segadusse sattuda ja töömahukaks muutuda, mistõttu ilmub järgmine make tööriist.
2. tee Make-tööriista võib vaadelda kui intelligentset partiitöötluse tööriista, millel puudub kompileerimise ja linkimise funktsioon, vaid kasutab meetodit, mis sarnaneb partiitöötlusega – kutsudes kasutaja poolt makefile-failis määratud käske.
3. Makefile Mis see on?
Lihtsalt öeldes, nagu laulu partituur, on ka loomistööriist nagu dirigent, dirigent juhib kogu orkestrit mängima vastavalt partituurile ning loomise tööriist koostab ja lingib vastavalt käskudele makefile'is. Makefile käsk sisaldab käske kutsuda gcc (või mõni teine kompilaatori) lähtefaili kompileerimiseks.
Mõnes lihtsas projektis saab makefile'i käsitsi teha, kuid kui projekt on väga suur, on käsitsi kirjutatud makefile samuti väga tülikas.
4. CMAKE CMake suudab hõlpsasti genereerida Makefile'i faili ülaltoodud versiooni jaoks. Muidugi on cmake'il ka teisi paremaid funktsioone, nimelt see suudab genereerida make-faile, mida saab kasutada vastaval platvormil erinevatel platvormidel, nii et me ei pea seda ise muutma.
Aga mida kasutab cmake makefile'i genereerimiseks? Samuti peab ta genereerima makefile'i faili põhjal nimega CMakeLists.txt fail (teaduslik nimi: konfiguratsioonifail).
5. CMakeList.txt Lõpuks CMakeLists.txt kes selle dokumendi kirjutab? Kallis, see on kirjutatud sinu enda käega.
6. nmake Mis on nmake?
nmake on Microsoft Visual Studio kõrvalkäsk, mis peab paigaldama VS-i, mida võib tegelikult pidada Linuxi Make'i ekvivalentseks, saad aru?
Üleviidud:
Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav.
|