Programozási linux alatt

1. lépés - Programok fordítása a C / C ++ nyelven 2. lépés - Debug információk 3. lépés - Fordítsd több fájlt a 4. lépés - Könyvtár objektum fájlok

5. lépés - Hozzon létre egy statikus könyvtár 6. lépés - létrehozása dynamic link library

7. lépés - A dinamikus könyvtárak 8. lépéssel - funkciói munka dinamikus könyvtárakat 9. lépéssel - inicializálása dinamikus kapcsolat könyvtárak

10. lépés - Lehetőségek program - `getopt '

11. lépés - Az átadás hosszú lehetőség a programban - getopt_long 12. lépés - Az a program lezárása hibaüzenetek 13. lépéssel - Információk a felhasználó

14. lépés - Első adatok az árnyék jelszó

15. lépés - Munka rendszer jelszavak crypt () függvény 16. lépés - Első információk a felhasználói csoportok

1. lépés - Programok fordítása a C / C ++ nyelven

A fordító alakítja a program kódot az „emberi” nyelvről tárgykód, hogy a számítógép megért. Fordítóprogramok Linux, sok, szinte minden közös nyelvet. A többség a legnépszerűbb fordítóprogramok szerepelnek a készlet gcc. ismert GCC

Célkitűzés C. Chill. Fortran. Ada és a Java. könyvtárak ezek a nyelvek (libstdc ++. libgcj.).

Fordítása történik:

Ezt követően, ha a fordítás folyamata sikeres, akkor kap egy letölthető fájl a.out. amely képes futtatni a következő parancsot:

Például írjunk egy kis egyszerű program:

2. lépés - Debug információk

Bármilyen alapértelmezett fordító nyújt hibakeresési információkat objektum fájl. GCC fordító is ilyen információkat nyújt a fájlt, és az eredmény akkor nézd meg magad. Ha összeállítja a projekt az előző lépésben, van egy a.out állomány mérete 11817 bájt (talán ez lehet egy különböző méretű).

Az összes ilyen információt szánják hibakeresés debug hibakereső programot GNU Debugger. Fuss, hogy akkor a parancs:

Ez elindítja a hibakereső és a lefordított programot. Hibakeresés fogunk beszélni külön-külön és részletesebben.

gcc fordítóval tud generálni hibakeresési információkat a különböző formátumok és kötetek, amelyek ellenőrzik a speciális kulcsokat. Részletes leírást lehet az ember gcc parancsot:

-egy -dletters -fpretend-float -g -glevel -gcoff -gxcoff -gxcoff + -gdwarf -gdwarf + -gstabs -gstabs + -ggdb -p -pg -Save-temps -print-file-name = könyvtár -print-libgcc-file- Íme -print-prog-name = programot

-g teremt hibakeresési információ a natív formában az operációs rendszer, s úgy dönt, a több formátumban: szúrások. COFF. XCOFF vagy törpe. Sok rendszeren, ez a gomb lehetővé teszi, hogy konkrét információkat, amelyek segítségével csak a hibakereső gdb. Egyéb kulcsok lehetővé teszik finomabb ellenőrzést a folyamat felett beágyazó a hibakeresési információkat.

Key -ggdb tartalmaz végrehajtható hibakeresési információk a natív operációs rendszer típusát, és kiegészíti a speciális információkat gdb debugger.

Key -gstabs teremt javítási információkat leszúrja formátumban anélkül, hogy további gdb kiterjesztéseket. Ezt a formátumot használják, amit a hibakereső DBX legtöbb BSD rendszerekben. Key -gstabs + hozzáteszi hibakeresési információkat érthető Advanced debugger gdb.

Key -gcoff létre hibakeresés adatokat COFF formátumban. SDB hibakereső amelyet a legtöbb rendszerben a System V változat System V R4.

Key -gxcoff információt nyújt fájlt XCOFF formátumban. ami által használt DBX hibakereső IBM RS / 6000 rendszerek. Használata -gxcoff + vlkyuchaet további információt felhasználni a gdb.

Key -gdwarf hozzáteszi Infomatsiya törpe méret prinyaotm rendszer System V Release 4 Ennek -gdwarf + gombot hozzáadja a hibakereső gdb.

Hozzátéve, hogy ezek a kulcsok végén a számok növelheti vagy csökkentheti a szintet hibakeresés, azaz méretének szabályozására a kívánt hibakeresési információkat. Például a legfontosabb:

Növeli a hibakeresés szinten 3. Az alapértelmezés 2. Az első szintű hibakeresés fordító tartalmaz egy minimális mennyiségű hibakeresési információkat fájl elegendő rögzítő részei a programnak, hogy te nem planirovli debug. Az információ tartalmazza a funkciók leírása és a külső változókat, de nem tartalmazza a tájékoztatás a helyi változókat és nem forrás vonalak. A második szint - az alapértelmezett szintet, a fájl tartalmazza a legtöbb szükséges hibakeresési információkat. A harmadik szint lehetővé teszi, hogy extra információkat, mint például egy bizonyos jelenlétét a makró programot.

Fent látható a többi kulcsot, hogy lehet használni. A legtöbb ilyen gombok megjelenítésére a dump program fordítási időben és nem a hibakeresés, és a hibakeresés a fordító maga :)) Tehát akkor felejtsd el őket, és nem emlékszem.

Debug információk is szép, de ez jelentősen növelheti a fájlt (3-4 alkalommal). Ahhoz, hogy hozzon létre egy szoftver „közlemény” van egy külön program, amely lehetővé teszi, hogy távolítsa el a hibakeresési információkat a futtatható fájl. Ez a program az úgynevezett szalag. Annak érdekében, hogy teljesen tiszta a kép hibakeresési információkat, a hívni kívánt a -s opciót.

Kezelés után ez a csapat a fájl mérete csökkent csaknem háromszorosa volt az 3156 bájt. Összehasonlítva a 11 Kb előtt, hogy ez egy nagyon jó dolog.

3. lépés - összeállítása több fájlt

Általában egyszerű programok állnak egyetlen forrásból. A helyzet kissé bonyolultabb, ha a program nagy lesz. Amikor dolgozik egy ilyen program lehet, hogy néhány igen komoly probléma:

• A fájl nagyobb lesz, és növeli a fordítási idő, és a legkisebb változás a forrás szöveg automatikusan kénytelen tölteni az időt a programozó újrafordítani a programot.

• Ha a program fut egy csomó ember, hogy szinte lehetetlen nyomon követni a változásokat.

• A folyamat egyengető és orientálása magát egy nagy forráskód bonyolulttá válik, és a keresést egy kis hiba vezethet kénytelen „tanulmány” a kódot.

Ez még nem minden probemy esetlegesen előforduló jelenlétében a „szörny” a program. Ezért, amikor a programokat célszerű megtörni őket darabokra, hogy funkcionálisan korlátozott és újra. Ez nagyban segíti magát a C ++ nyelven. egy gazdag szintaxis.

Ahhoz, hogy a függvény vagy változó egy külön fájlban kell tenni előtte kulcsszó extern. Nézzük például, hozzon létre egy programot több fájlt. Először hozzon létre a fő program, amelyet a két külső eljárásokat. Hívd fel ezt a fájlt main.c:

// leírják f1 () függvény, mint a külső extern int f1 ();

// leírják f2 () függvény, mint a külső extern int f2 ();

Kapcsolódó cikkek