1. GCC dzimšana!
1985. gadā, tumšā naktī, kad viņa pirksti nebija redzami, dīvains vīrietis ar bārdu, īsu figūru un nekārtīgiem matiem sāka rakstīt C valodas kompilatoru komplektu. Šī efonija, vēlāk pazīstama kā "lielākais programmētājs" un "brīvās programmatūras tēvs", bija Ričards Stallmans. Pēc divu gadu smaga darba Ričards Stallmans, kuram ir garāka bārda un netīrāki mati, ir pabeidzis pirmo C kompilatora versiju, ko viņš sauc par GNU C Complier, kas tagad ir slavenā GCC avots. Vēlāk GCC strauji attīstījās, un tagad GCC var apkopot ne tikai C valodu, bet arī C++, Fortran, Pascal, Objective-C, Java, Ada un citas valodas. Pagājušā gadsimta 80. un 90. gados personālo datoru CPU frekvence, cietā diska lielums un atmiņas lielums tika mērīts MB vai pat KB, un kompilējamo programmu failu skaits bija mazs, un GCC komandas bija pietiekamas, lai to risinātu.
Otrkārt, ir parādījušās jaunas nepatikšanas! (make & makefile)
Uzlabojot un popularizējot datora veiktspēju, programmatūras projektā ir arvien vairāk avota failu, piemēram, linux, kas ir viegli sajaukt un darba slodze, kas ir viegli sajaukt un darba slodze, kas padarīs cilvēkus trakus.
Ričards Stallmans un Rolands Makgrats kopīgi izstrādāja make and makefile, lai atrisinātu šo problēmu. Veidošanas rīku var uzskatīt par inteliģentu partijas apstrādes rīku, kuram nav kompilēšanas un saistīšanas funkcijas, bet izmanto metodi, kas līdzīga partijas apstrādei - izsaucot lietotāja norādītās komandas makefile failā. Kas ir makefile? Makefile ir skripta fails, tāpat kā dziesmas partitūra, veidošanas rīks ir kā diriģents, diriģents vada visu orķestri spēlēt saskaņā ar partitūru, un veidošanas rīks ir sastādīts un saistīts saskaņā ar makefile komandām. Makefile komanda satur komandas, lai izsauktu gcc (vai citu kompilatoru), lai kompilētu avota failu.
3. Atkal ir radušās jaunas nepatikšanas! (Cmake & CMakelist)
Makefile var rakstīt ar roku dažos vienkāršos projektos, bet, ja projekts ir ļoti liels, ir arī ļoti apgrūtinoši rakstīt makefile ar roku. Un makefiles dažādām platformām ir parādījušies viens pēc otra, ieskaitot GNU make, QT qmake, Microsoft MSnmake, BSD Make(pmake), Makepp utt. Šie Make rīki atbilst dažādām specifikācijām un standartiem, un to Makefile formāts ir ļoti atšķirīgs. Tas rada nopietnu problēmu: ja programmatūra vēlas būt starpplatforma, tai jāspēj kompilēt dažādās platformās. Ja izmantojat iepriekš minēto rīku Make , jums ir jāraksta makefile katram standartam, kas būs traks darbs, un, ja maināt platformas makefile, jums tas būs jāpārveido.
Tātad, šajā laikā parādījās rīks Cmake, un Cmake var vieglāk ģenerēt makefile failu iepriekš minētajam. Protams, cmake ir arī citas funkcijas, tas ir, tas var ģenerēt makefiles, kurus var izmantot attiecīgajā platformā dažādās platformās, un jums tas nav jāmaina pats. cmake ir augšējais slānis Makefile, un to mērķis ir ražot pārnēsājamus makefiles un vienkāršot milzīgo darba slodzi rakstīšanas makefiles pats. Bet ko cmake izmanto, lai ģenerētu makefile? Tam ir arī jāģenerē makefile, pamatojoties uz failu, ko sauc par CMakeLists.txt failu (zinātniskais nosaukums: konfigurācijas fails). Galu galā CMakeLists.txt kurš raksta dokumentu? Protams, jūs to uzrakstījāt pats.
Ceturtkārt, atkal ir parādījušās jaunas nepatikšanas! (Nindzja)
Tā kā programmatūras inženierija kļūst lielāka un sarežģītāka, lēnā izpildes ātruma problēma kļūst arvien nopietnāka.
Tā rezultātā Google programmētājs uzsāka Ninja, uz ātrumu vērstu būvēšanas rīku. Ninja nav visu veidu uzlabotas funkcijas, sintakse un lietošana ir ļoti vienkārša, un tas norāda, ko darīt detalizēti, tāpēc tas sāk kompilēt ļoti ātri. Saskaņā ar reālās pasaules testiem: ar vairāk nekā 30 000 avota failiem ir iespējams sākt reālu būvēšanu 1 sekundē. Turpretī vecāko inženieru rakstītie makefiles aizņem arī 10-20 sekundes, lai sāktu būvēt.
5. Līdz šim ideālas beigas!
Cmake var ģenerēt .ninja un .makefile rīkus. Tā kā daudzi cilvēki nav pazīstami ar to, kā rakstīt makefile failus un ninja failus, cmake ir nepieciešams tikai vienkāršs avota koda faila apraksts (tas ir, CMakeLists.txt fails), lai automātiski ģenerētu projekta makefile failu vai ninja failu un pēc tam sāktu kompilēšanu, izmantojot ninja vai make.
5 minūtes, lai saprastu make/makefile/cmake/nmake
Nesen jūs esat padarījis make, cmake, makefile ... ... Šīs lietas ir reibonis, paskatieties uz šo rakstu, varbūt jūs varat skaidri saprast.
1. PLSP Tā ir GNU kompilatoru kolekcija vai vienkārši kompilators, kas var apkopot daudzas programmēšanas valodas (ieskaitot C, C++, Objective-C, Fortran, Java utt.).
Ja mūsu programmai ir tikai viens avota fails, mēs to varam kompilēt tieši ar komandu gcc.
Bet ko darīt, ja mūsu programmā ir daudz avota failu? Kompilējot ar gcc komandām pa vienai, ir viegli sajaukt un darbietilpīgi, tāpēc parādās šāds rīks.
2. Izgatavot Veidošanas rīku var uzskatīt par inteliģentu partijas apstrādes rīku, kuram nav kompilēšanas un saistīšanas funkcijas, bet izmanto metodi, kas līdzīga partijas apstrādei - izsaucot lietotāja norādītās komandas makefile failā.
3. Makefile Kas tas ir?
Vienkārši sakot, tāpat kā dziesmas partitūra, veidošanas rīks ir kā diriģents, diriģents vada visu orķestri spēlēt saskaņā ar partitūru, un veidošanas rīks apkopo un sasaista saskaņā ar makefile komandām. Makefile komanda satur komandas, lai izsauktu gcc (vai citu kompilatoru), lai kompilētu avota failu.
Dažos vienkāršos projektos makefile var veikt manuāli, bet, ja projekts ir ļoti liels, arī ar roku rakstīts makefile ir ļoti apgrūtinošs.
4. cmake cmake var viegli ģenerēt makefile failu iepriekš minētajam make. Protams, cmake ir citas labākas funkcijas, tas ir, tas var ģenerēt makefiles, kurus var izmantot attiecīgajā platformā dažādās platformās, tāpēc mums pašiem tas nav jāmaina.
Bet ko cmake izmanto, lai ģenerētu makefile? Tam ir arī jāģenerē makefile, pamatojoties uz failu, ko sauc par CMakeLists.txt failu (zinātniskais nosaukums: konfigurācijas fails).
5. CMakeList.txt Galu galā CMakeLists.txt kurš raksta dokumentu? Dārgais, tas ir rakstīts ar savu roku.
6. nmake Kas ir nmake?
nmake ir sānu komanda Microsoft Visual Studio, kurai ir jāinstalē VS, kas faktiski var teikt, ka ir līdzvērtīga Linux markai, saprotiet?
Pārcelts no:
Hipersaites pieteikšanās ir redzama.
Hipersaites pieteikšanās ir redzama.
Hipersaites pieteikšanās ir redzama.
|