Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 2340|Atbildi: 1

Ievads GCC, CMake, CMakelist, Make, Makefile un Ninja

[Kopēt saiti]
Publicēts 09.07.2024 20:44:28 | | |
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.





Iepriekšējo:ERP Kingdee mākoņa zvaigžņotās debesis (1) Vienkārša izpratne
Nākamo:Rocky Linux 9 pakotne nav atrasta: Nav atbilstības argumentam: xxx
 Saimnieks| Publicēts 08.12.2024 08:57:06 |
MinGW nodrošina vienkāršu un ērtu GCC balstītu programmu izstrādes vidi operētājsistēmai Windows. MinGW apkopo bezmaksas Windows lietošanas galvenes un bibliotēkas failu kolekciju; Tas arī integrē GNU (http://www.gnu.org/) rīki, īpaši GNU izstrādes rīki, piemēram, klasiskie gcc, g++, make utt. MinGW ir pilnīgi bezmaksas programmatūra, kas simulē GCC izstrādes vidi Linux sistēmā Windows platformā, nodrošinot labu pamata atbalstu C++ starpplatformu izstrādei un nodrošinot apstākļus programmētājiem, kas strādā operētājsistēmā Windows, lai iepazītos ar C++ inženiertehnisko organizāciju operētājsistēmā Linux.
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com