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é.
|