Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 2340|Odpoveď: 1

Úvod do GCC, CMake, CMakelist, Make, Makefile a Ninja

[Kopírovať odkaz]
Zverejnené 9. 7. 2024 20:44:28 | | |
1. Zrod GCC!

V roku 1985, počas tmavej noci, keď mal prsty mimo dohľadu, začal zvláštny muž s bradou, nízkou postavou a rozcuchanými vlasmi písať sadu kompilátorov jazyka C. Táto ekfónia, neskôr známa ako "najväčší programátor" a "otec slobodného softvéru", bol Richard Stallman. Po dvoch rokoch tvrdej práce Richard Stallman, ktorý má dlhšiu bradu a rozcuchanejšie vlasy, dokončil prvú verziu C kompilátora, ktorú nazýva GNU C Complier, ktorá je dnes zdrojom slávneho GCC. Neskôr sa GCC rýchlo rozvíjal a dnes GCC dokáže kompilovať nielen jazyk C, ale aj C++, Fortran, Pascal, Objective-C, Java, Ada a ďalšie jazyky. V 80. a 90. rokoch minulého storočia sa frekvencia CPU, veľkosť pevného disku a pamäť osobných počítačov merala v MB alebo dokonca v KB, pričom počet programových súborov, ktoré bolo potrebné skompilovať, bol malý, a príkazy GCC stačili na ich spracovanie.

Po druhé, objavili sa nové problémy! (Make & makefile)

S rozvojom a popularizáciou výkonu počítačov obsahuje softvérový projekt čoraz viac zdrojových súborov, ako je Linux, ktorý je ľahko mätúci a zaťažujúci, ľahko zmätený a zaťažený, čo ľudí privádza do šialenstva.

Richard Stallman a Roland McGrath spoločne vyvinuli make and makefile, aby tento problém vyriešili. Nástroj make možno vnímať ako inteligentný dávkový procesný nástroj, ktorý nemá funkciu kompilácie a prepojenia, ale používa metódu podobnú dávkovému spracovaniu – volaním príkazov zadaných používateľom v súbore makefile. Čo je to makefile? Makefile je skriptový súbor, podobne ako partitúra piesne, make tool je ako dirigent, dirigent riadi celý orchester, aby hral podľa partitúry, a make tool sa skompiluje a prepojí podľa príkazov v makefile. Príkaz makefile obsahuje príkazy na zavolanie gcc (alebo iného kompilátora) na kompiláciu zdrojového súboru.

3. Opäť sa objavili nové problémy! (Cmake & CMakelist)

Makefile sa dá písať ručne pri niektorých jednoduchých projektoch, ale keď je projekt veľmi veľký, je tiež veľmi náročné písať makefile ručne. A makefile pre rôzne platformy sa objavovali jeden za druhým, vrátane GNU make, QT qmake, Microsoftov MSnmake, BSD Make(pmake), Makepp a ďalších. Tieto Make nástroje dodržiavajú rôzne špecifikácie a štandardy a formát Makefile, ktorý vykonávajú, sa veľmi líši. To predstavuje vážny problém: ak chce softvér byť multiplatformový, musí byť schopný kompilovať na rôznych platformách. Ak použijete nástroj Make vyššie, musíte napísať makefile pre každý štandard, čo bude šialená práca, a ak zmeníte platformový makefile, budete ho musieť znovu upraviť.

Takže v tom čase sa objavil nástroj Cmake a Cmake môže jednoduchšie generovať makefile súbor pre vyššie uvedený make. Samozrejme, cmake má aj ďalšie funkcie, teda dokáže generovať makefile, ktoré sa dajú použiť na príslušnej platforme naprieč platformami, a nemusíte ich sami upravovať. cmake je vrchná vrstva Makefile a ich účelom je vytvárať prenosné makefile súbory a zjednodušiť obrovskú záťaž písania makefileov na vlastnú päsť. Ale čo cmake používa na generovanie makefile? Tiež musí vygenerovať makefile založený na súbore nazývanom CMakeLists.txt file (vedecký názov: konfiguračný súbor). Nakoniec CMakeLists.txt kto ten dokument píše? Samozrejme, napísal si to sám.

Po štvrté, opäť sa objavili nové problémy! (Ninja)

Ako sa softvérové inžinierstvo stáva väčším a zložitejším, problém pomalej rýchlosti vykonávania sa stáva čoraz vážnejším.

V dôsledku toho programátor Google spustil Ninja, nástroj zameraný na rýchlosť zostavovania. Ninja nemá všetky možné pokročilé funkcie, syntax a použitie sú veľmi jednoduché a podrobne špecifikuje, čo má robiť, takže sa kompilácia začína veľmi rýchlo. Podľa reálnych testov: s viac ako 30 000 zdrojovými súbormi je tiež možné začať skutočnú zostavu za 1 sekundu. Naopak, Makefile napísané skúsenými inžiniermi tiež začínajú 10-20 sekúnd.

5. Zatiaľ dokonalý koniec!

Cmake dokáže generovať nástroje pre .ninja a .makefile. Keďže mnohí ľudia nevedia, ako zapisovať makefile a ninja súbory, cmake potrebuje len jednoduchý popis zdrojového kódu (teda CMakeLists.txt súboru), aby automaticky vygeneroval projekt makefile alebo ninja súbor a potom začal kompilovať cez ninja alebo make.


5 minút na pochopenie make/makefile/cmake/nmake

V poslednej dobe si bol vytvorený make, cmake, makefile... ... Tieto veci sú závratné, pozrite si nasledujúci článok, možno to pochopíte jasne.

1. GCC
Je to GNU Compiler Collection, alebo jednoducho kompilátor, ktorý dokáže kompilovať mnoho programovacích jazykov (vrátane C, C++, Objective-C, Fortran, Java a pod.).

Keď má náš program len jeden zdrojový súbor, môžeme ho skompilovať priamo príkazom gcc.

Ale čo ak náš program obsahuje veľa zdrojových súborov? Pri kompilácii pomocou príkazov gcc jeden po druhom je ľahké sa zmiasť a vyčerpať prácu, preto sa zobrazí nasledujúci nástroj na vytvorenie.

2. Vytvorte
Nástroj make možno vnímať ako inteligentný dávkový procesný nástroj, ktorý nemá funkciu kompilácie a prepojenia, ale používa metódu podobnú dávkovému spracovaniu – volaním príkazov zadaných používateľom v súbore makefile.

3. makefile
Čo je toto?

Jednoducho povedané, rovnako ako partitúra piesne, nástroj na tvorbu je ako dirigent, dirigent riadi celý orchester, aby hral podľa partitúry, a nástroj na tvorbu kompiluje a prepája podľa príkazov v makefile. Príkaz makefile obsahuje príkazy na zavolanie gcc (alebo iného kompilátora) na kompiláciu zdrojového súboru.

Makefile sa dá manuálne použiť v niektorých jednoduchých projektoch, ale keď je projekt veľmi veľký, ručne písaný makefile je tiež veľmi problematický.

4. cmake
cmake dokáže jednoducho vygenerovať makefile súbor pre vyššie uvedený make. Samozrejme, cmake má aj iné lepšie funkcie, teda dokáže generovať makefile, ktoré sa dajú použiť na zodpovedajúcej platforme naprieč platformami, takže si ich nemusíme sami upravovať.

Ale čo cmake používa na generovanie makefile? Tiež musí vygenerovať makefile založený na súbore nazývanom CMakeLists.txt file (vedecký názov: konfiguračný súbor).

5. CMakeList.txt
Nakoniec CMakeLists.txt kto ten dokument píše? Drahá, je to napísané tvojou vlastnou rukou.

6. nmake
Čo je nmake?

nmake je vedľajší príkaz v Microsoft Visual Studio, ktorý potrebuje nainštalovať VS, čo sa dá vlastne považovať za ekvivalent linuxovej verzie, rozumiete?

Prenesené z:

Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.





Predchádzajúci:ERP Kingdee Cloud Starry Sky (1) Jednoduché pochopenie
Budúci:Balík Rocky Linux 9 nenájdený: Nemám šancu na argument: xxx
 Prenajímateľ| Zverejnené 8. 12. 2024 8:57:06 |
MinGW poskytuje jednoduché a pohodlné prostredie na vývoj programov založené na GCC pre Windows. MinGW zhromažďuje kolekciu bezplatných súborov s hlavičkou a knižnicou pre použitie Windows; Integruje tiež GNU (http://www.gnu.org/) nástrojov, najmä GNU vývojových nástrojov ako klasické gcc, g++, make a podobne. MinGW je úplne slobodný softvér, ktorý simuluje vývojové prostredie GCC pod Linuxom na platforme Windows, poskytuje dobrú základnú podporu pre multiplatformový vývoj C++ a poskytuje podmienky pre programátorov pracujúcich vo Windows, aby sa mohli oboznámiť s inžinierskou organizáciou C++ pod Linuxom.
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com