Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 2340|Odgovoriti: 1

Uvod v GCC, CMake, CMakelist, Make, Makefile in Ninja

[Kopiraj povezavo]
Objavljeno na 9. 07. 2024 20:44:28 | | |
1. Rojstvo GCC!

Leta 1985, v temni noči, ko so mu prsti izginili iz vidnega polja, je nenavaden moški z brado, nizko postavo in razmršenimi lasmi začel pisati niz prevajalnikov za jezik C. Ta ekfonija, kasneje znana kot "največji programer" in "oče proste programske opreme", je bil Richard Stallman. Po dveh letih trdega dela je Richard Stallman, ki ima daljšo brado in bolj razmršene lase, dokončal prvo različico C prevajalnika, ki ga imenuje GNU C Complier, ki je zdaj vir slavnega GCC. Kasneje se je GCC hitro razvijal in zdaj lahko prevaja ne le jezik C, ampak tudi C++, Fortran, Pascal, Objective-C, Java, Ada in druge jezike. V 80. in 90. letih prejšnjega stoletja so frekvenco procesorja, velikost trdega diska in velikost pomnilnika osebnih računalnikov merili v MB ali celo KB, število programskih datotek, ki jih je bilo treba prevesti, pa je bilo majhno, zato so bili GCC ukazi dovolj za njihovo obdelavo.

Drugič, pojavile so se nove težave! (izdelava in izdelava datoteke)

Z izboljšanjem in popularizacijo računalniške zmogljivosti ima programski projekt vedno več izvornih datotek, kot je Linux, ki je lahko zmeden, obremenjujoč, kar je lahko zmedeno in obremenjuje, kar ljudi spravi ob pamet.

Richard Stallman in Roland McGrath sta skupaj razvila make and makefile, da bi rešila ta problem. Orodje make lahko razumemo kot inteligentno orodje za serijsko obdelavo, ki nima funkcije prevajanja in povezovanja, temveč uporablja metodo, podobno paketnemu procesiranju – z klicanjem ukazov, ki jih uporabnik določi v datoteki makefile. Kaj je makefile? Makefile je skriptna datoteka, podobno kot partitura pesmi, orodje za izdelavo je kot dirigent, dirigent usmerja celoten orkester, da igra po partituri, orodje za izdelavo pa se prevede in poveže po ukazih v makefile. Ukaz makefile vsebuje ukaze za klic gcc (ali drugega prevajalnika) za prevajanje izvorne datoteke.

3. Spet so se pojavile nove težave! (Cmake & CMakelist)

Makefile je mogoče pisati ročno pri nekaterih preprostih projektih, vendar je pri zelo velikem projektu tudi zelo zahtevno ročno pisati makefile. Makefile za različne platforme so se pojavljale ena za drugo, vključno z GNU make, QT-jevim qmake, Microsoftovim MSnmake, BSD Make(pmake), Makepp itd. Ta orodja za izdelavo sledijo različnim specifikacijam in standardom, format Makefile, ki ga izvajajo, pa se zelo razlikuje. To predstavlja resen problem: če želi programska oprema biti večplatformska, mora biti sposobna prevajanja na različnih platformah. Če uporabiš zgornje orodje Make, moraš za vsak standard napisati makefile, kar bo noro delo, in če spremeniš platformno makefile, jo boš moral ponovno prilagoditi.

Tako se je takrat pojavilo orodje Cmake, ki lahko lažje ustvari datoteko makefile za zgoraj omenjeno izdelavo. Seveda ima cmake tudi druge funkcije, torej lahko generira makefile, ki jih lahko uporabljate na ustrezni platformi na različnih platformah, in jih ni treba spreminjati sam. cmake je zgornja plast Makefile, njihov namen pa je izdelava prenosnih makefilejev in poenostavitev ogromnega dela pisanja makefilejev samostojno. Kaj pa cmake uporablja za generiranje makefile? Prav tako mora ustvariti makefile na podlagi datoteke z imenom CMakeLists.txt datoteka (znanstveno ime: konfiguracijska datoteka). Na koncu CMakeLists.txt kdo napiše dokument? Seveda, napisal si ga sam.

Četrtič, spet so se pojavile nove težave! (Ninja)

Ker programsko inženirstvo postaja večje in bolj zapleteno, postaja problem počasne hitrosti izvajanja vse bolj resen.

Zaradi tega je Googlov programer predstavil Ninjo, orodje za gradnjo, osredotočeno na hitrost. Ninja nima vseh mogočih naprednih funkcij, sintaksa in uporaba sta zelo preprosti, podrobno pa določa, kaj je treba narediti, zato se začne zelo hitro prevajati. Po resničnih testih: z več kot 30.000 izvornimi datotekami je mogoče prav tako začeti pravo gradnjo v 1 sekundi. Nasprotno pa Makefiles, ki jih pišejo višji inženirji, prav tako potrebujejo 10-20 sekund za začetek izdelave.

5. Popoln konec do zdaj!

Cmake lahko ustvari orodja .ninja in .makefile. Ker veliko ljudi ni seznanjenih s pisanjem makefile datotek in ninja datotek, cmake potrebuje le preprost opis izvorne kode (torej CMakeLists.txt datoteke), da samodejno ustvari projekt makefile ali ninja datoteko, nato pa začne prevajati skozi ninja ali make.


5 minut za razumevanje make/makefile/cmake/nmake

Si bil v zadnjem času narejen s strani make, cmake, makefile... ... Te stvari so omotice, preberite naslednji članek, morda boste lahko jasno razumeli.

1. GCC
Gre za GNU Compiler Collection ali preprosto prevajalnik, ki lahko prevede številne programske jezike (vključno s C, C++, Objective-C, Fortran, Java itd.).

Ko ima naš program samo eno izvorno datoteko, jo lahko neposredno prevedemo z ukazom gcc.

Kaj pa, če naš program vsebuje veliko izvornih datotek? Pri prevajanju z gcc ukazi enega za drugim se hitro zmede in zahteva veliko dela, zato se pojavijo naslednja orodja za izdelavo.

2. narediti
Orodje make lahko razumemo kot inteligentno orodje za serijsko obdelavo, ki nima funkcije prevajanja in povezovanja, temveč uporablja metodo, podobno paketnemu procesiranju – z klicanjem ukazov, ki jih uporabnik določi v datoteki makefile.

3. makefile
Kaj je to?

Preprosto povedano, tako kot partitura pesmi, je orodje za izdelavo kot dirigent, dirigent usmerja celoten orkester, da igra po partituri, orodje za izdelavo pa prevaja in povezuje glede na ukaze v makefile. Ukaz makefile vsebuje ukaze za klic gcc (ali drugega prevajalnika) za prevajanje izvorne datoteke.

Makefile je mogoče ročno vzeti v nekaterih preprostih projektih, vendar je pri zelo velikem projektu tudi ročno napisana makefile zelo problematična.

4. cmake
cmake lahko enostavno ustvari makefile datoteko za zgornji make. Seveda ima cmake tudi druge boljše funkcije, torej lahko generira makefile, ki jih lahko uporabljamo na ustrezni platformi na različnih platformah, tako da nam ni treba sami spreminjati.

Kaj pa cmake uporablja za generiranje makefile? Prav tako mora ustvariti makefile na podlagi datoteke z imenom CMakeLists.txt datoteka (znanstveno ime: konfiguracijska datoteka).

5. CMakeList.txt
Na koncu CMakeLists.txt kdo napiše dokument? Dragi, napisano je z lastno roko.

6. nmake
Kaj je nmake?

nmake je stranski ukaz v Microsoft Visual Studiu, ki ga je treba namestiti VS, kar je pravzaprav enakovredno Linuxovemu make-u, razumete?

Preneseno iz:

Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.





Prejšnji:ERP Kingdee Cloud Starry Sky (1) Preprosto razumevanje
Naslednji:Rocky Linux 9 paket ni najden: Ni primera za argument: xxx
 Najemodajalec| Objavljeno na 8. 12. 2024 08:57:06 |
MinGW nudi preprosto in priročno razvojno okolje programov za Windows, ki temelji na GCC. MinGW zbira zbirko brezplačnih datotek z glavo in knjižnico za uporabo Windows; Prav tako integrira GNU (http://www.gnu.org/) orodij, še posebej GNU razvojna orodja, kot so klasični gcc, g++, make itd. MinGW je popolnoma prosta programska oprema, ki simulira razvojno okolje GCC pod Linuxom na Windows platformi, zagotavlja dobro osnovno podporo za razvoj C++ na več platformah in omogoča programerjem, ki delajo pod Windows, da se seznanijo z inženirsko organizacijo C++ pod Linuxom.
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com