1. A GCC születése!
1985-ben, egy sötét éjszakán, amikor az ujjai eltűntek, egy idegen férfi szakállal, alacsony alakkal és kócos hajjal kezdett el írni egy C nyelvi kompolátorokat. Ez az efonia, amelyet később a "legnagyobb programozóként" és a szabad szoftver "atyjaként" ismertek, Richard Stallman volt. Két év kemény munka után Richard Stallman, akinek hosszabb szakálla és rendezetlenebb haja van, elkészítette a C fordító első változatát, amelyet GNU C Compliernek nevez, és amely ma a híres GCC forrása. Később a GCC gyorsan fejlődött, és ma már a GCC nemcsak C nyelvet tud fordítani, hanem C++, Fortran, Pascal, Objective-C, Java, Ada és más nyelvek is lefordítani. A múlt század 80-as és 90-es éveiben a személyi számítógépek CPU frekvenciáját, merevlemez méretét és memóriaméretét MB vagy akár KB értékben mérték, és a fordítandó programfájlok száma kevés volt, így a GCC parancsok elegendőek voltak a kezelésére.
Másodszor, új bajok jelentek meg! (make & makefile)
A számítógép teljesítményének javulásával és népszerűvé válásával egy szoftverprojekt egyre több forrásfájlt tartalmaz, például Linuxot, ami könnyen összezavarható és munkaterhelt, ami könnyen összezavarható és megterhelt, ami megőrjíti az embereket.
Richard Stallman és Roland McGrath közösen fejlesztették ki a make and makefile rendszert ennek a problémának a megoldására. A make eszköz intelligens batch feldolgozási eszközként értelmezhető, amelynek nem a fordítási és összekapcsolási funkciója, hanem a köteges feldolgozáshoz hasonló módszert alkalmaz – a felhasználó által a makefile fájlban megadott parancsokat hívja. Mi az a makefile? A makefile egy forgatókönyvfájl, akárcsak egy dal kottéja, a make eszköz olyan, mint egy karmester, a karmester irányítja az egész zenekart, hogy játsszanak a kottához, és a make eszköz a makefile parancsai szerint össze van fordítva és összekapcsolva. A makefile parancs tartalmaz olyan parancsokat, amelyek a gcc (vagy egy másik fordító) meghívására szolgálnak, hogy egy forrásfájlt fordítsanak.
3. Ismét új bajok merültek fel! (Cmake és CMakelist)
A makefile kézzel is megírható néhány egyszerű projekt alatt, de ha a projekt nagyon nagy, akkor a makefile kézzel írása is nagyon problémás. És különböző platformokra készült fájlok egymás után jelentek meg, többek között a GNU make, QT qmake, Microsoft MSnmake, BSD Make(pmake), Makepp stb. Ezek a Make eszközök különböző specifikációkat és szabványokat követnek, és az általuk alkalmazott Makefile formátum jelentősen eltér. Ez komoly problémát jelent: ha a szoftver crossplatformos akar lenni, akkor képesnek kell lennie különböző platformokon fordítani. Ha a fenti Make eszközt használod, minden szabványhoz egy makefile-t kell írnod, ami őrült munka lesz, és ha megváltoztatod a platform makefile-t, újra kell módosítanod.
Ekkor jelent meg a Cmake eszköz, és a Cmake könnyebben tud létrehozni egy makefile fájlt a fent említett Make-hez. Természetesen a cmake-nek más funkciói is vannak, vagyis képes létrehozni olyan makefile-okat, amelyeket a megfelelő platformon lehet használni különböző platformokon különböző platformoknál, és nem kell magadnak módosítanod. A cmake a Makefile felső rétege, és célja, hogy hordozható makefile-eket készítsen, és leegyszerűsítsék a makyafile készítésének hatalmas munkaterhelését. De mit használ a cmake a makefile generálásához? Emellett egy makefile-t is létre kell hoznia egy fájl alapján, amelyet CMakeLists.txt fájlnak hívnak (tudományos neve: konfigurációs fájl). Végül CMakeLists.txt ki írja a dokumentumot? Persze, te magad írtad.
Negyedszer, ismét új bajok jelentek meg! (Ninja)
Ahogy a szoftvermérnökség egyre nagyobb és összetettebb lesz, a gyártás lassú végrehajtási sebessége egyre komolyabbbá válik.
Ennek eredményeként egy Google programozó elindította a Ninja-t, egy sebességre fókuszáló építőeszközt. A Ninja nem rendelkezik minden fejlett funkcióval, a szintaxisa és a használata nagyon egyszerű, és részletesen meghatározza a feladatot, így nagyon gyorsan elkezd összeállítani. Valós tesztek szerint: több mint 30 000 forrásfájllal egy valódi build is elindítható egy másodperc alatt. Ezzel szemben a vezető mérnökök által írt Makefile-ek is 10-20 másodpercig kezdenek elkészülni.
5. Eddig tökéletes befejezés!
A Cmake képes .ninja és .makefile eszközöket generálni. Mivel sokan nem ismerik a makefile és ninja fájlok írását, a cmake-nek csak egy egyszerű forráskód leírása kell (azaz CMakeLists.txt fájl), hogy automatikusan létrehozzanak egy Project makefile fájlt vagy ninja fájlt, majd elkezdje a fordítást a ninja vagy make segítségével.
5 perc, hogy megértsd a make/makefile/cmake/nmake
Mostanában készítettek téged a make, cmake, makefile... ... Ezek szédítőek, nézd meg a következő cikket, talán tisztán megérted.
1. GCC Ez a GNU Compiler Collection, vagy egyszerűen csak egy fordító, amely számos programozási nyelvet képes fordítani (beleértve a C-t, C++-ot, Objective-C-t, Fortran-t, Java-t stb.).
Ha a programunknak csak egy forrásfájlja van, közvetlenül a gcc parancsgal tudjuk lefordítani.
De mi van, ha a programunk sok forrásfájlt tartalmaz? Amikor gcc parancsokat egyenként fordítasz, könnyen összezavarodsz és teheres lesz, ezért a következő make eszköz jelenik meg.
2. Készítsd A make eszköz intelligens batch feldolgozási eszközként értelmezhető, amelynek nem a fordítási és összekapcsolási funkciója, hanem a köteges feldolgozáshoz hasonló módszert alkalmaz – a felhasználó által a makefile fájlban megadott parancsokat hívja.
3. Makefile Mi ez?
Egyszerűen fogalmazva, akárcsak egy dal kottéja, a make eszköz olyan, mint egy karmester, a karmester irányítja az egész zenekart, hogy a kottához igazítsák a zenét, és a make tool a makefile parancsai szerint összeállít és linkol. A makefile parancs tartalmaz olyan parancsokat, amelyek a gcc (vagy egy másik fordító) meghívására szolgálnak, hogy egy forrásfájlt fordítsanak.
A makefile kézzel is elkészíthető néhány egyszerű projektben, de ha a projekt nagyon nagy, a kézzel írt makefile is nagyon problémás.
4. cmake A cMake könnyen generálhat egy makefile fájlt a fent említett make fájlhoz. Természetesen a cmake-nek vannak más jobb funkciói is, vagyis képes létrehozni olyan makefile-okat, amelyeket a megfelelő platformon is használhatunk különböző platformokon keresztül, így nem kell magunknak módosítanunk.
De mit használ a cmake a makefile generálásához? Emellett egy makefile-t is létre kell hoznia egy fájl alapján, amelyet CMakeLists.txt fájlnak hívnak (tudományos neve: konfigurációs fájl).
5. CMakeList.txt Végül CMakeLists.txt ki írja a dokumentumot? Drágám, a te saját kezeddel írtad.
6. nmake Mi az az nmake?
Az nmake egy mellékparancs a Microsoft Visual Studio-ban, amelynek telepíteni kell a VS-t, ami valójában egyenértékű a Linux Make-jével, érted?
Áthelyezve:
A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható.
|