Opțiuni de compilatoare

GCC este un compilator de optimizare disponibil pentru limbile C, C ++.

Programul gcc. execută din linia de comandă, reprezintă o superstructură pe un grup de compilatoare. În funcție de extensiile numelor de fișiere parvenite ca parametri și opțiuni suplimentare, gcc execută preprocesoarele necesare, compilatoarele, linkerele.

Fișierele cu extensia Cc sau C sunt tratate ca fișiere în C ++, fișiere cu extensia .c ca programe în limba C, iar fișierele cu extensia .o sunt considerate fișiere obiect.

Pentru a compila codul sursă al C ++, care este în fișierul F.cc. și să creați un fișier de obiecte F.o. trebuie să executați următoarea comandă:

Opțiunea -c înseamnă "compilație numai".

Pentru a compila unul sau mai multe fișiere obiect obținute din codul sursă - F1.o. F2.o. - într-un singur fișier executabil F. trebuie să introduceți comanda:

gcc -o F F1.o F2.o

Opțiunea -o specifică numele fișierului executabil.

Puteți combina doi pași de procesare - compilație și conectare - într-un singur pas comun folosind comanda:

gcc -o F F1.cc. -lg ++

- posibilele opțiuni suplimentare pentru compilare și conectare. Opțiunea -lg ++ indică necesitatea conectării unei biblioteci C ++ standard, - posibilele biblioteci suplimentare.
După construire, va fi creat fișierul executabil F, care poate fi pornit cu comanda ./F. . rând determină argumentele liniei de comandă a programului dvs.
În procesul de legare, bibliotecile trebuie adesea folosite. O bibliotecă este un set de fișiere obiect grupate într-un singur fișier și indexate. Când comanda de construcție detectează o bibliotecă în lista de fișiere obiect pentru conectare, verifică dacă fișierele obiect deja asamblate conțin apeluri pentru funcții definite într-unul din fișierele de bibliotecă. Dacă se găsesc astfel de funcții, apelurile corespunzătoare sunt asociate cu codul de fișier obiect din bibliotecă. Bibliotecile pot fi conectate utilizând opțiunea -lname. În acest caz, în directoare standard, cum ar fi / lib. / usr / lib, / usr / local / lib, biblioteca va fi căutată în fișierul numit libname.a. Bibliotecile trebuie să fie listate după fișierele sursă sau obiect care conțin apeluri către funcțiile corespunzătoare.

Printre numeroasele opțiuni de compilare și de legare, cele mai frecvent utilizate sunt următoarele:

GFortran este numele compilatorului pentru limbajul de programare Fortran, care face parte din colecția de compilatoare GNU.

Construiți programul FORTRAN:
sintaxă

gfortran [-c? -S? -E]
[-g] [-pg] [-Olevel]
[-Wwarn. ] [-pedantic]
[-Idir. ] [-Lir. ]
[-Dmacro [= defn]. ] [-Umacro]
[-foption. ]
[-mmachine-opțiune. ]
[un outfile] infilat.

GFortran se bazează pe CCG și, prin urmare, împărtășește majoritatea caracteristicilor sale. În particular, parametrii pentru optimizarea și generarea informațiilor de depanare sunt aceiași pentru ei.
GFortran este folosit pentru a compila fișierul sursă, source.f90. într-un fișier obiect, object.o sau executabil. În același timp, acesta generează un modul de fișiere de descriere pentru modulele întâlnite, așa-numitul nume de nume.module.mod.

Pentru a compila fișierul sursă, source.f90. puteți rula: gfortran source.f90

Fișierul de ieșire va fi denumit automat source.o. Acesta este un fișier obiect care nu poate fi executat. După ce ați colectat unele fișiere sursă, le puteți conecta împreună cu bibliotecile necesare pentru a crea fișierul executabil. Aceasta se face după cum urmează: gfortran -o executable object1.o object2.o. unde executabilul este executabil. objectX.o sunt fișiere obiect care pot fi create așa cum este descris mai sus sau în mod egal de alți compilatori din surse într-o altă limbă. Dacă numele fișierului executabil este omis, fișierul executabil va fi numit a.out. Fișierul executabil poate fi executat, ca în orice alt program. De asemenea, puteți ignora un pas separat de compilare și introduceți următoarea comandă: gfortran o executabilă source1.f90 source2.f90, care va colecta fișierele sursă source1.f90 și source2.f90. și să creați un fișier executabil. De asemenea, puteți pune fișiere obiect pe această linie de comandă, acestea vor fi atașate automat.

Această opțiune înseamnă că este necesară numai compilarea. Din fișierele sursă ale programului, fișierele de obiecte sunt create sub forma nume.o. Nu se efectuează niciun aspect.

Definiți numele de nume în programul compilat ca valoare valoare. Efectul este identic cu prezența liniei #define nume de valoare la începutul programului. Partea = valoarea poate fi omisă, caz în care valoarea implicită este 1.

Utilizați numele fișierului ca nume pentru fișierul creat.

Folosiți biblioteca libname.so când faceți legătura

Adăugați calea lib-path și include-path paths la directoarele de căutare standard pentru biblioteci și fișiere antet, respectiv.

Introduceți informațiile de depanare a fișierului sau a fișierului executabil pentru depanatorul gdb. Opțiunea trebuie specificată atât pentru compilare, cât și pentru aspect. În combinație cu -g, se recomandă utilizarea opțiunii opt-out -O0 (vezi mai jos)

Derivează dependențele de fișierele antet. utilizate în programul C sau C ++, într-un format adecvat pentru utilitatea de fabricație. Fisierele obiect sau executabile nu sunt create.

Plasați instrucțiunile de profilare în fișierul obiect sau executabil pentru a genera informațiile utilizate de utilitarul gprof. Opțiunea trebuie specificată atât pentru compilare, cât și pentru aspect. Asamblat cu opțiunea -pg program la pornire generează un fișier de statistici. Programul gprof, bazat pe acest fișier, creează o decriptare indicând timpul necesar pentru executarea fiecărei funcții.

Afișează mesaje despre toate avertismentele sau erorile care apar în timpul compilării programului.

REAL variabilele sunt tratate ca DOUBLE PRECISION. Acest lucru este la fel ca și specificarea -Mr8 și -Mr8intrinsics.

Creează informații de depanare. Opțiunea stabilește nivelul de optimizare la zero, cu excepția cazului în care opțiunea -O este comandată. Procesul poate duce la rezultate neașteptate dacă un nivel de optimizare este comandat altul decât zero. Codul generat va fi mai lent la -O0. decât cu alte niveluri de optimizare.

Adaugă propriile directoare de căutare antet la procesul de construire

Trimite către linker. Adaugă propriile directoare de căutare bibliotecă în procesul de construire.

Articole similare