Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 2340|Odpověď: 1

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

[Kopírovat odkaz]
Zveřejněno 09.07.2024 20:44:28 | | |
1. Zrození GCC!

V roce 1985, za temné noci, kdy měl prsty mimo dohled, začal podivný muž s vousy, nízkou postavou a rozcuchanými vlasy psát sadu kompilátorů jazyka C. Tato ekfonie, později známá jako "největší programátor" a "otec svobodného softwaru", byl Richard Stallman. Po dvou letech tvrdé práce Richard Stallman, který má delší vousy a rozcuchanější vlasy, dokončil první verzi C kompilátoru, kterou nazývá GNU C Complier, jež je nyní zdrojem slavného GCC. Později se GCC rychle rozvíjelo a nyní GCC dokáže kompilovat nejen jazyk C, ale také C++, Fortran, Pascal, Objective-C, Java, Ada a další. V 80. a 90. letech minulého století se frekvence CPU, velikost pevného disku a velikost paměti osobních počítačů měřily v MB nebo dokonce KB, a počet programových souborů, které bylo třeba zkompilovat, byl malý, a příkazy GCC stačily k jejich řešení.

Za druhé, objevily se nové problémy! (Make & makefile)

S rozvojem a popularizací výkonu počítačů obsahuje softwarový projekt stále více zdrojových souborů, jako je Linux, což je snadno matoucí a zatížené, snadno zmatené a zatížené, což lidi může přivést k šílenství.

Richard Stallman a Roland McGrath společně vyvinuli Make and Makefile, aby tento problém vyřešili. Nástroj make lze považovat za inteligentní dávkový proces, který nemá funkci kompilace a propojení, ale používá metodu podobnou dávkovému zpracování – volání příkazů zadaných uživatelem v souboru makefile. Co je to makefile? Makefile je skriptový soubor, podobně jako notový zápis písně, nástroj pro tvorbu je jako dirigent, dirigent řídí celý orchestr, aby hrál podle partitury, a nástroj pro tvorbu je zkompilován a propojen podle příkazů v makefile. Příkaz makefile obsahuje příkazy pro volání gcc (nebo jiného kompilátoru) pro kompilaci zdrojového souboru.

3. Znovu se objevily nové problémy! (Cmake & CMakelist)

Makefile lze napsat ručně u některých jednoduchých projektů, ale když je projekt velmi rozsáhlý, je také velmi obtížné psát makefile ručně. A makefile pro různé platformy se objevovaly jeden po druhém, včetně GNU make, QT qmake, Microsoft's MSnmake, BSD Make(pmake), Makepp a dalších. Tyto nástroje Make se řídí různými specifikacemi a standardy a formát Makefile, který používají, se velmi liší. To představuje vážný problém: pokud chce být software multiplatformní, musí být schopen kompilovat na různých platformách. Pokud použijete nástroj Make výše, musíte napsat makefile pro každý standard, což bude šílená práce, a pokud změníte platformový makefile, budete ho muset znovu upravit.

V té době se objevil nástroj Cmake a Cmake může pro výše uvedený make snadněji vytvořit soubor makefile. Samozřejmě cmake má i další funkce, tedy dokáže generovat makefile, které lze použít na příslušné platformě napříč platformami, a nemusíte je sami upravovat. cmake je horní vrstva Makefile a jejich účelem je vytvářet přenosné makefile a zjednodušit obrovskou pracovní zátěž při psaní makefileů na vlastní pěst. Ale co cmake používá k vytvoření makefile? Také musí vygenerovat makefile založený na souboru nazvaném CMakeLists.txt file (vědecký název: konfigurační soubor). Nakonec CMakeLists.txt kdo ten dokument píše? Samozřejmě, že jsi to napsal sám.

Za čtvrté, znovu se objevily nové problémy! (Ninja)

Jak se softwarové inženýrství stává větším a složitějším, problém pomalé rychlosti provádění se stává stále vážnějším.

Výsledkem bylo, že programátor Googlu spustil Ninju, nástroj zaměřený na rychlost sestavování. Ninja nemá všechny možné pokročilé funkce, syntaxe a použití jsou velmi jednoduché a podrobně specifikuje, co dělat, takže se začne rychle kompilovat. Podle reálných testů: s více než 30 000 zdrojovými soubory je také možné začít skutečnou sestavu za 1 sekundu. Naopak Makefile napsané zkušenými inženýry také začínají 10–20 sekund.

5. Zatím dokonalý konec!

Cmake dokáže generovat nástroje pro .ninja a .makefile. Protože mnoho lidí neví, jak psát makefile soubory a ninja soubory, cmake potřebuje jen jednoduchý popis zdrojového kódu (tedy CMakeLists.txt souboru), aby automaticky vygeneroval projekt makefile nebo ninja soubor, a pak začal kompilovat ninja nebo make.


5 minut na pochopení make/makefile/cmake/nmake

V poslední době, byl jsi vytvořen make, cmake, makefile... ... Točí se ti hlava, podívej se na následující článek, možná to pochopíš jasně.

1. GCC
Jedná se o GNU Compiler Collection, nebo jednoduše kompilátor, který dokáže kompilovat mnoho programovacích jazyků (včetně C, C++, Objective-C, Fortran, Java atd.).

Když má náš program pouze jeden zdrojový soubor, můžeme jej přímo zkompilovat příkazem gcc.

Ale co když náš program obsahuje mnoho zdrojových souborů? Při kompilaci pomocí příkazů gcc jeden po druhém je snadné se zmást a nabrat na práci, proto se objeví následující nástroj pro úpravy.

2. Vytvořit
Nástroj make lze považovat za inteligentní dávkový proces, který nemá funkci kompilace a propojení, ale používá metodu podobnou dávkovému zpracování – volání příkazů zadaných uživatelem v souboru makefile.

3. makefile
Co to je?

Jednoduše řečeno, stejně jako partitura písně, nástroj make je jako dirigent, dirigent řídí celý orchestr, aby hrál podle partitury, a make tool kompiluje a propojuje podle příkazů v makefile. Příkaz makefile obsahuje příkazy pro volání gcc (nebo jiného kompilátoru) pro kompilaci zdrojového souboru.

Makefile lze ručně převzít v některých jednoduchých projektech, ale když je projekt velmi velký, je také velmi obtížné ručně psaný makefile.

4. cmake
cmake snadno vygeneruje makefile soubor pro výše uvedený make. Samozřejmě, cmake má i jiné lepší funkce, tedy dokáže generovat makefile, které lze použít na odpovídající platformě napříč platformami, takže je nemusíme sami upravovat.

Ale co cmake používá k vytvoření makefile? Také musí vygenerovat makefile založený na souboru nazvaném CMakeLists.txt file (vědecký název: konfigurační soubor).

5. CMakeList.txt
Nakonec CMakeLists.txt kdo ten dokument píše? Drahá, je to napsáno tvou vlastní rukou.

6. nmake
Co je nmake?

nmake je vedlejší příkaz v Microsoft Visual Studio, který je potřeba nainstalovat VS, což se dá vlastně považovat za ekvivalent linuxového make, chápete?

Převedeno z:

Přihlášení k hypertextovému odkazu je viditelné.
Přihlášení k hypertextovému odkazu je viditelné.
Přihlášení k hypertextovému odkazu je viditelné.





Předchozí:ERP Kingdee Cloud Starry Sky (1) Jednoduché pochopení
Další:Balíček Rocky Linux 9 nenalezen: Není vhodný pro argument: xxx
 Pronajímatel| Zveřejněno 08.12.2024 8:57:06 |
MinGW poskytuje jednoduché a pohodlné prostředí pro vývoj programů založené na GCC pro Windows. MinGW shromažďuje kolekci bezplatných souborů s hlavičkami a knihovnami pro použití Windows; Také integruje GNU (http://www.gnu.org/) nástrojů, zejména vývojových nástrojů GNU jako klasické gcc, g++, make atd. MinGW je zcela svobodný software, který simuluje vývojové prostředí GCC pod Linuxem na platformě Windows, poskytuje dobrou základní podporu pro multiplatformní vývoj C++ a poskytuje podmínky pro programátory pracující ve Windows, aby se seznámili s inženýrskou organizací C++ pod Linuxem.
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com