Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 2340|Atsakyti: 1

Įvadas į GCC, CMake, CMakelist, Make, Makefile ir Ninja

[Kopijuoti nuorodą]
Paskelbta 2024-07-09 20:44:28 | | |
1. GCC gimimas!

1985 m., tamsią naktį, kai jo pirštai buvo nematomi, keistas vyras su barzda, trumpa figūra ir netvarkingais plaukais pradėjo rašyti C kalbos kompiliatorių rinkinį. Ši ekfonija, vėliau žinoma kaip "didžiausias programuotojas" ir "laisvos programinės įrangos tėvas", buvo Richardas Stallmanas. Po dvejų metų sunkaus darbo Richardas Stallmanas, turintis ilgesnę barzdą ir netvarkingesnius plaukus, užbaigė pirmąją C kompiliatoriaus versiją, kurią jis vadina GNU C Complier, kuri dabar yra garsiojo GCC šaltinis. Vėliau GCC sparčiai vystėsi, o dabar GCC gali kompiliuoti ne tik C kalbą, bet ir C++, Fortran, Pascal, Objective-C, Java, Ada ir kitas kalbas. Praėjusio amžiaus 80-aisiais ir 90-aisiais asmeninių kompiuterių procesoriaus dažnis, standžiojo disko dydis ir atminties dydis buvo matuojami MB ar net KB, o programų failų, kuriuos reikėjo kompiliuoti, skaičius buvo nedidelis, o GCC komandų pakako.

Antra, atsirado naujų bėdų! (Make & makefile)

Tobulėjant ir populiarėjant kompiuterio našumui, programinės įrangos projekte yra vis daugiau šaltinio failų, tokių kaip "Linux", kuris yra lengvai supainiojamas ir apkrautas, kurį lengva supainioti ir apkrauti, o tai privers žmones išprotėti.

Richardas Stallmanas ir Rolandas McGrathas kartu sukūrė "make and makefile", kad išspręstų šią problemą. Kūrimo įrankis gali būti vertinamas kaip išmanusis paketinio apdorojimo įrankis, kuris neturi kompiliavimo ir susiejimo funkcijos, tačiau naudoja metodą, panašų į paketinį apdorojimą - iškviečiant vartotojo nurodytas komandas makefile faile. Kas yra makefile? Makefile yra scenarijaus failas, tiesiog kaip dainos partitūra, kūrimo įrankis yra kaip dirigentas, dirigentas nurodo visam orkestrui groti pagal partitūrą, o kūrimo įrankis yra sudarytas ir susietas pagal makefile komandas. Makefile komandoje yra komandos, skirtos iškviesti gcc (arba kitą kompiliatorių), kad sukompiliuotų šaltinio failą.

3. Vėl iškilo naujų bėdų! (Cmake & CMakelist)

Makefile gali būti parašyta ranka pagal kai kuriuos paprastus projektus, bet kai projektas yra labai didelis, tai taip pat labai vargina rašyti makefile ranka. Ir makefiles skirtingoms platformoms pasirodė vienas po kito, įskaitant GNU make, QT qmake, Microsoft MSnmake, BSD Make(pmake), Makepp ir kt. Šie "Make" įrankiai atitinka skirtingas specifikacijas ir standartus, o jų atliekamas "Makefile" formatas labai skiriasi. Tai kelia rimtą problemą: jei programinė įranga nori būti kelių platformų, ji turi turėti galimybę kompiliuoti skirtingose platformose. Jei naudojate aukščiau pateiktą įrankį "Make", turite parašyti kiekvieno standarto makefile failą, o tai bus beprotiškas darbas, o jei pakeisite platformos makefile, turėsite jį iš naujo modifikuoti.

Taigi, šiuo metu, įrankis Cmake pasirodė, ir Cmake gali generuoti makefile failą aukščiau padaryti lengviau. Žinoma, cmake turi ir kitų funkcijų, tai yra, jis gali generuoti makefiles, kuriuos galima naudoti atitinkamoje platformoje įvairiose platformose, ir jums nereikia jo keisti patiems. cmake yra viršutinis sluoksnis Makefile, ir jų tikslas yra gaminti nešiojamus makefiles ir supaprastinti didžiulį darbo krūvį rašyti makefiles patys. Bet ką cmake naudoti generuoti makefile? Jis taip pat turi sugeneruoti makefile pagal failą, vadinamą CMakeLists.txt failu (mokslinis pavadinimas: konfigūracijos failas). Galų gale CMakeLists.txt kas rašo dokumentą? Žinoma, jūs parašėte patys.

Ketvirta, vėl atsirado naujų bėdų! (Nindzė)

Kadangi programinės įrangos inžinerija tampa vis didesnė ir sudėtingesnė, lėto gamybos vykdymo greičio problema tampa vis rimtesnė.

Dėl to "Google" programuotojas pristatė į greitį orientuotą kūrimo įrankį "Ninja". Ninja neturi visų rūšių išplėstinių funkcijų, sintaksė ir naudojimas yra labai paprasti, ir ji nurodo, ką daryti išsamiai, todėl ji pradeda kompiliuoti labai greitai. Remiantis realaus pasaulio bandymais: turint daugiau nei 30 000 šaltinio failų, taip pat galima pradėti tikrą versiją per 1 sekundę. Priešingai, vyresniųjų inžinierių parašyti "Makefiles" taip pat užtrunka 10-20 sekundžių.

5. Tobula pabaiga iki šiol!

"Cmake" gali generuoti .ninja ir .makefile įrankius. Kadangi daugelis žmonių nėra susipažinę su tuo, kaip rašyti makefile failus ir nindzių failus, cmake reikia tik paprasto šaltinio kodo failo (tai yra, CMakeLists.txt failo) aprašymo, kad automatiškai sugeneruotų projekto makefile failą arba ninja failą, o tada pradėtų kompiliuoti per ninja arba make.


5 minutės suprasti make/makefile/cmake/nmake

Neseniai, ar jums buvo padaryta padaryti, cmake, makefile ... ... Šie dalykai svaigsta galva, pažiūrėkite į šį straipsnį, galbūt galite aiškiai suprasti.

1. GCC
Tai GNU kompiliatorių kolekcija arba tiesiog kompiliatorius, galintis kompiliuoti daugybę programavimo kalbų (įskaitant C, C++, Objective-C, Fortran, Java ir kt.).

Kai mūsų programa turi tik vieną šaltinio failą, galime jį kompiliuoti tiesiogiai naudodami komandą gcc.

Bet ką daryti, jei mūsų programoje yra daug šaltinio failų? Kompiliuojant gcc komandas po vieną, lengva susipainioti ir daug darbo, todėl pasirodo šis įrankis.

2. Padaryti
Kūrimo įrankis gali būti vertinamas kaip išmanusis paketinio apdorojimo įrankis, kuris neturi kompiliavimo ir susiejimo funkcijos, tačiau naudoja metodą, panašų į paketinį apdorojimą - iškviečiant vartotojo nurodytas komandas makefile faile.

3. Makefile
Kas tai?

Paprasčiau tariant, kaip ir dainos partitūra, kūrimo įrankis yra kaip dirigentas, dirigentas nurodo visam orkestrui groti pagal partitūrą, o kūrimo įrankis kompiliuoja ir susieja pagal makefile esančias komandas. Makefile komandoje yra komandos, skirtos iškviesti gcc (arba kitą kompiliatorių), kad sukompiliuotų šaltinio failą.

Kai kuriuose paprastuose projektuose makefile gali būti paimtas rankiniu būdu, tačiau kai projektas yra labai didelis, ranka rašytas makefile taip pat yra labai varginantis.

4. cmake
cmake gali lengvai sugeneruoti makefile failą aukščiau. Žinoma, cmake turi ir kitų geresnių funkcijų, tai yra, jis gali generuoti makefiles, kuriuos galima naudoti atitinkamoje platformoje įvairiose platformose, todėl mums nereikia jo keisti patiems.

Bet ką cmake naudoti generuoti makefile? Jis taip pat turi sugeneruoti makefile pagal failą, vadinamą CMakeLists.txt failu (mokslinis pavadinimas: konfigūracijos failas).

5. CMakeList.txt
Galų gale CMakeLists.txt kas rašo dokumentą? Brangioji, ji parašyta savo ranka.

6. nmake
Kas yra nmake?

nmake yra šoninė komanda Microsoft Visual Studio, kuri turi įdiegti VS, kuri iš tikrųjų gali būti sakoma, kad yra lygiavertė Linux padaryti, suprantate?

Perkelta iš:

Hipersaito prisijungimas matomas.
Hipersaito prisijungimas matomas.
Hipersaito prisijungimas matomas.





Ankstesnis:ERP Kingdee debesis žvaigždėtas dangus (1) Paprastas supratimas
Kitą:Rocky Linux 9 paketas nerastas: Nėra atitikimo argumentui: xxx
 Savininkas| Paskelbta 2024-12-08 08:57:06 |
MinGW suteikia paprastą ir patogią GCC pagrįstą programų kūrimo aplinką, skirtą Windows. MinGW renka nemokamų "Windows" naudojimo antraštės ir bibliotekos failų kolekciją; Ji taip pat integruoja GNU (http://www.gnu.org/) įrankius, ypač GNU kūrimo įrankius, tokius kaip klasikinis gcc, g++, make ir kt. MinGW yra visiškai nemokama programinė įranga, kuri imituoja GCC kūrimo aplinką Linux sistemoje Windows platformoje, suteikdama gerą pagrindinį palaikymą C++ kelių platformų kūrimui ir sudarydama sąlygas programuotojams, dirbantiems su Windows, susipažinti su C++ inžinerijos organizacija pagal Linux.
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com