Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 2340|Răspunde: 1

Introducere în GCC, CMake, CMakelist, Make, Makefile și Ninja

[Copiază linkul]
Postat pe 09.07.2024 20:44:28 | | |
1. Nașterea GCC!

În 1985, într-o noapte întunecată, când degetele îi erau ascunse, un bărbat străin, cu barbă, siluetă scundă și păr ciufulit a început să scrie un set de compilatoare pentru limbajul C. Această ecfonie, cunoscută mai târziu ca "cel mai mare programator" și "părintele software-ului liber", a fost Richard Stallman. După doi ani de muncă asiduă, Richard Stallman, care are o barbă mai lungă și părul mai ciufulit, a finalizat prima versiune a compilatorului C, pe care o numește GNU C Complier, care acum este sursa faimosului GCC. Ulterior, GCC s-a dezvoltat rapid, iar acum GCC poate compila nu doar limbajul C, ci și C++, Fortran, Pascal, Objective-C, Java, Ada și alte limbaje. În anii '80 și '90 ai secolului trecut, frecvența CPU-ului, dimensiunea hard disk-ului și dimensiunea memoriei calculatoarelor personale erau toate măsurate în MB sau chiar KB, iar numărul de fișiere de program care trebuiau compilate era mic, iar comenzile GCC erau suficiente pentru a gestiona acest lucru.

În al doilea rând, au apărut noi probleme! (make & makefile)

Odată cu îmbunătățirea și popularizarea performanței calculatoarelor, un proiect software conține tot mai multe fișiere sursă, cum ar fi Linux, care este ușor de confuz și încărcat de lucru, care este ușor de încurcat și încărcat de lucru, ceea ce îi va înnebuni pe oameni.

Richard Stallman și Roland McGrath au co-dezvoltat makefile și makefile pentru a rezolva această problemă. Instrumentul make poate fi văzut ca un instrument inteligent de procesare batch, care nu are funcția de compilare și legare, dar folosește o metodă similară cu procesarea batch – apelând comenzile specificate de utilizator în fișierul makefile. Ce este un makefile? Makefile-ul este un fișier script, la fel ca partitura unui cântec, instrumentul make este ca un dirijor, dirijorul dirijează întreaga orchestră să cânte conform partiturii, iar instrumentul make este compilat și legat conform comenzilor din makefile. Comanda makefile conține comenzi pentru a chema gcc (sau un alt compilator) pentru a compila un fișier sursă.

3. Au apărut din nou noi probleme! (Cmake & CMakelist)

Makefile-ul poate fi scris manual sub unele proiecte simple, dar când proiectul este foarte mare, este de asemenea foarte dificil să scrii makefile-ul manual. Și makefiles pentru diferite platforme au apărut unul după altul, inclusiv GNU make, qmake de la QT, MSnmake de la Microsoft, BSD Make (pmake), Makepp etc. Aceste unelte Make urmează specificații și standarde diferite, iar formatul Makefile pe care îl folosesc variază foarte mult. Aceasta reprezintă o problemă serioasă: dacă software-ul vrea să fie cross-platform, trebuie să poată compila pe platforme diferite. Dacă folosești unealta Make de mai sus, trebuie să scrii un makefile pentru fiecare standard, ceea ce va fi o treabă nebună, iar dacă schimbi makefile-ul platformei, va trebui să-l remodifici.

Astfel, în acel moment a apărut unealta Cmake, iar Cmake poate genera mai ușor un fișier makefile pentru fabricarea de mai sus. Desigur, cmake are și alte funcții, adică poate genera makefiles care pot fi folosite pe platforma corespunzătoare pe mai multe platforme și nu trebuie să le modifici singur. cmake este stratul superior al Makefile, iar scopul lor este să producă makefiles portabile și să simplifice volumul uriaș de muncă al scrierii makefile-urilor singur. Dar ce folosește cmake pentru a genera un makefile? De asemenea, trebuie să genereze un fișier makefile bazat pe un fișier numit fișier CMakeLists.txt (nume științific: fișier de configurare). La final, CMakeLists.txt cine scrie documentul? Desigur, tu ai scris-o.

În al patrulea rând, au apărut din nou probleme noi! (Ninja)

Pe măsură ce ingineria software devine mai mare și mai complexă, problema vitezei lente de execuție a fabricării devine tot mai gravă.

Ca urmare, un programator Google a lansat Ninja, un instrument de construcție axat pe viteză. Ninja nu are tot felul de funcții avansate, sintaxa și utilizarea sunt foarte simple, și specifică în detaliu ce trebuie făcut, așa că începe să se compileze foarte repede. Conform testelor reale: cu peste 30.000 de fișiere sursă, este posibil să începi o construcție reală în 1 secundă. În contrast, Makefile-urile scrise de ingineri seniori au nevoie de 10-20 de secunde pentru a începe construcția.

5. Finalul perfect de până acum!

Cmake poate genera unelte .ninja și .makefile. Pentru că mulți oameni nu sunt familiarizați cu cum să scrie fișiere makefile și fișiere ninja, cmake are nevoie doar de o descriere simplă a fișierului sursă (adică CMakeLists.txt fișier) pentru a genera automat un fișier makefile proiect sau fișier ninja, apoi să înceapă compilarea prin ninja sau make.


5 minute pentru a înțelege make/makefile/cmake/nmake

Recent, ai fost făcut de make, cmake, makefile... ... Aceste lucruri sunt amețite, uită-te la următorul articol, poate poți înțelege clar.

1. GCC
Este GNU Compiler Collection, sau pur și simplu un compilator, care poate compila multe limbaje de programare (inclusiv C, C++, Objective-C, Fortran, Java etc.).

Când programul nostru are un singur fișier sursă, îl putem compila direct cu comanda gcc.

Dar ce se întâmplă dacă programul nostru conține multe fișiere sursă? Când compilezi cu comenzi gcc una câte una, este ușor să te confuzezi și să muncești mult, așa că apare următorul instrument de creare.

2. Fă
Instrumentul make poate fi văzut ca un instrument inteligent de procesare batch, care nu are funcția de compilare și legare, dar folosește o metodă similară cu procesarea batch – apelând comenzile specificate de utilizator în fișierul makefile.

3. makefile
Ce este acesta?

Pe scurt, la fel ca partitura unei piese, instrumentul make este ca un dirijor, dirijorul direcționează întreaga orchestră să cânte conform partiturii, iar instrumentul make compilează și leagă conform comenzilor din makefile. Comanda makefile conține comenzi pentru a chema gcc (sau un alt compilator) pentru a compila un fișier sursă.

Makefile-ul poate fi luat manual în unele proiecte simple, dar când proiectul este foarte mare, makefile-ul scris de mână este de asemenea foarte problematic.

4. cmake
CMaK poate genera cu ușurință un fișier makefile pentru make-ul de mai sus. Desigur, cmake are și alte funcții mai bune, adică poate genera makefiles care pot fi folosite pe platforma corespunzătoare pe mai multe platforme, deci nu trebuie să le modificăm noi înșine.

Dar ce folosește cmake pentru a genera un makefile? De asemenea, trebuie să genereze un fișier makefile bazat pe un fișier numit fișier CMakeLists.txt (nume științific: fișier de configurare).

5. CMakeList.txt
La final, CMakeLists.txt cine scrie documentul? Dragă, e scris de mâna ta.

6. nmake
Ce este nmake?

nmake este o comandă secundară în Microsoft Visual Studio, care trebuie să instaleze VS, ceea ce poate fi de fapt considerat echivalent cu modelul Linux, înțelegi?

Transferat din:

Autentificarea cu hyperlink este vizibilă.
Autentificarea cu hyperlink este vizibilă.
Autentificarea cu hyperlink este vizibilă.





Precedent:ERP Kingdee Cloud Starry Sky (1) Înțelegere simplă
Următor:Pachetul Rocky Linux 9 negăsit: Nicio potrivire pentru argument: xxx
 Proprietarul| Postat pe 08.12.2024 08:57:06 |
MinGW oferă un mediu simplu și convenabil de dezvoltare a programelor bazat pe GCC pentru Windows. MinGW colectează o colecție de fișiere gratuite de antete și biblioteci pentru utilizarea Windows; De asemenea, integrează GNU (http://www.gnu.org/) unelte, în special unelte de dezvoltare GNU precum classic gcc, g++, make etc. MinGW este un software complet liber, care simulează mediul de dezvoltare GCC sub Linux pe platforma Windows, oferind suport de bază bun pentru dezvoltarea cross-platform a C++ și oferind condiții pentru ca programatorii care lucrează sub Windows să se familiarizeze cu organizația de inginerie C++ sub Linux.
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com