Pasul 1 - compilez programe în C / C ++ language Pasul 2 - Informații Debug Pasul 3 - Compile mai multe fișiere Pasul 4 - Biblioteca de fișiere obiect
Pasul 5 - Crearea unei biblioteci Pasul statice 6 - Crearea unei biblioteci de legături dinamice
Pasul 7 - Utilizarea bibliotecilor dinamice Pasul 8 - Funcții de lucru cu biblioteci dinamice Pasul 9 - Inițializarea biblioteci dinamice link-
Pasul 10 - Opțiuni la un program - `getopt '
Etapa 11 - Transferul de opțiuni lungi în program - Pasul getopt_long 12 - Încheierea programului de mesaje de eroare Pasul 13 - Obținerea de informații despre utilizator
Pasul 14 - Obținerea de date din parola umbra
Pasul 15 - Lucrul cu parole de sistem folosind criptă) Funcția (Pasul 16 - Obținerea de informații despre grupuri de utilizatori
Pasul 1 - compilez programe în C / C ++ language
Compilatorul convertește codul de program în limba „uman“ în cod obiect pe care un computer înțelege. Compilatoare pentru Linux, există multe, aproape în fiecare limbă comună. Cea mai mare parte dintre cele mai populare compilatoare incluse în setul de compilatoare GNU Collection. cunoscut sub numele de GCC
Obiectiv C. Chill. Fortran. Ada și Java. ca bibliotecile pentru aceste limbi (libstdc ++. libgcj.).
Compilarea se face cu:
După aceea, în cazul în care procesul de compilare este de succes, veți primi un a.out fișier descărcabil. care poate rula următoarea comandă:
De exemplu, să scrie un mic program simplu:
Pasul 2 - Informații de depanare
Orice compilator implicit de depanare furnizează fișier obiect informații. GCC compilator prevede, de asemenea, astfel de informații la dosar și rezultatul pe care îl puteți vedea pentru tine. Când compilați proiectul din etapa anterioară, avem o dimensiune de fișier a.out de 11817 bytes (poate că poate fi o dimensiune diferită).
Toate aceste informații sunt destinate pentru depanarea programului de depanare depanator GNU Debugger. Rulați-l puteți comanda:
Aceasta începe debugger și programul nostru compilat. Debugging vom vorbi separat și mai detaliat.
compilatorul GCC poate genera informațiile de depanare în diferite formate și volume, care poate controla tastele speciale. Vezi o descriere detaliată poate fi comanda GCC om:
-un -dletters -fpretend-float -g -glevel -gcoff -gxcoff -gxcoff + -gdwarf -gdwarf + -gstabs -gstabs + -ggdb -p -pg -save-temps -print-file-name = biblioteca -print-libgcc-file- nume -print-prog-name = Program
opțiunea -g creează informațiile de depanare în forma nativă a sistemului de operare, el alege între mai multe formate: înjunghie. COFF. XCOFF sau DWARF. Pe multe sisteme, această cheie vă permite să utilizați informații specifice, care se poate utiliza numai GdB debugger. Alte taste permit un control mai bun asupra procesului de includere a informațiilor de depanare.
-ggdb Key include informații de depanare executabil nativ în tipul sistemului de operare și completează informațiile de specialitate pentru debugger gdb.
-gstabs cheie creează informațiile de depanare în format de lovituri de cuțit, fără extensii gdb suplimentare. Acest format este folosit de DBX depanatorul pe majoritatea sistemelor BSD. -gstabs cheie + adaugă informații de depanare ușor de înțeles GDB avansată depanator.
-gcoff cheie creează informații de depanare în format COFF. depanator SDB care este utilizat în majoritatea sistemelor de la System V versiunea sistemului V R4.
-gxcoff cheie furnizează informații de fișier în format XCOFF. care este utilizat de DBX debugger pe IBM RS / 6000 sisteme. Utilizarea -gxcoff + vlkyuchaet utiliza informații suplimentare pentru GDB.
-gdwarf cheie adaugă Infomatsiya în DWARF sistem format prinyaotm System V Release 4. În consecință -gdwarf + cheie adaugă GdB debugger.
Adăugarea acestor chei la sfârșitul numerelor poate mări sau micșora nivelul de depanare, și anume controla dimensiunea informațiilor de depanare dorite. De exemplu, cheia:
Creșterea nivelului de depanare la 3. Valoarea implicită este 2. compilator de depanare primul nivel include o cantitate minimă de fișier cu informații de depanare este suficientă pentru fixarea părți ale programului pe care nu o depanare planirovli. Informațiile includ descrierea unor funcții și variabile externe, dar nu include informații despre variabilele locale și linii non-sursă. Al doilea nivel - nivelul implicit, fișierul include cele mai multe informații de depanare necesare. Al treilea nivel vă permite să adăugați informații suplimentare, cum ar fi o anumită prezență în program macro.
Mai sus puteți vedea restul de chei care pot fi utilizate. Cele mai multe dintre aceste taste este proiectat pentru a afișa groapa de gunoi a programului la momentul compilarii si nu este pentru scopuri de depanare, precum și pentru depanare compilator în sine :)) Deci, puteți uita de ele si nu-mi amintesc.
Informații Debug este frumos, dar poate crește în mod semnificativ fișierul (în trei până la patru ori). Pentru a crea un software „eliberează“ există un program separat, care vă permite să eliminați informațiile de depanare din fișierul executabil. Acest program se numește banda. Pentru a goli complet fișierul de informații de depanare, pe care doriți să-l apelați cu opțiunea -s.
După tratamentul cu această dimensiune de fișier echipa a scăzut de aproape trei ori și a fost 3156 bytes. Comparativ cu 11 Kb înainte ca acesta este un lucru foarte bun.
Pasul 3 - Compilarea mai multe fișiere
De obicei, programe simple constau dintr-un singur fișier sursă. Situația este ceva mai complicată, în cazul în care programul devine mare. Atunci când se lucrează cu un astfel de program poate avea unele probleme destul de grave:
• Fișierul devine mai mare și crește timpul de compilare, iar cea mai mică schimbare în textul sursă este forțat în mod automat să-și petreacă timpul pe recompilare programatorului programului.
• Dacă programul rulează pe o mulțime de oameni, este aproape imposibil de a ține evidența modificărilor.
• Procesul de îndreptare și orientîndu-se cu un cod sursă mare devine complicată și căutarea unei erori mici poate duce la un „studiu“ forțat din nou codul.
Nu e tot probemy, care poate avea loc în prezența „monstru“ a programului. Prin urmare, la elaborarea acestor programe, este recomandat pentru a le sparge în bucăți care sunt limitate funcțional și peste. Acesta însuși limbajul C ++ ajută foarte mult. oferind o sintaxă bogată.
Pentru a face funcția sau variabilă într-un fișier separat, ar trebui să fie pus în fața ei de cuvinte cheie externă. Să luăm, de exemplu, a crea un program de la mai multe fișiere. În primul rând, creați programul principal, care va fi de două proceduri externe. Apelați acest main.c fișier:
// descrie f1 () funcția ca f1 extern exterior int ();
// descrie f2 () funcția ca f2 extern exterior int ();