Opcje kompilatora g77
This presentation is the property of its rightful owner.
Sponsored Links
1 / 6

Opcje kompilatora g77 PowerPoint PPT Presentation


  • 75 Views
  • Uploaded on
  • Presentation posted in: General

Opcje kompilatora g77. g77 [ opcje ] pliki_źródłowe Opcje: -c tylko kompilacja bez linkowania -S kompilacja do kodu assemblera -E tylko pre-processing -o nazwa_pliku określanie nazwy modułu wynikowego (standard a.out)

Download Presentation

Opcje kompilatora g77

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Opcje kompilatora g77

Opcje kompilatora g77

g77 [opcje] pliki_źródłowe

Opcje:

-c tylko kompilacja bez linkowania

-S kompilacja do kodu assemblera

-E tylko pre-processing

-o nazwa_pliku określanie nazwy modułu wynikowego (standard a.out)

-x język określanie języka plików źródłowych; jeżeli nie podajemy to język jest określany na podstawie rozszerzenia pliku

-B katalog dodaje katalog do ścieżki poszukiwań kompilatora

-g dodaje informację diagnostyczną która może być użyta przez debugger

-fbounds-check sprawdzanie przekroczenia zakresów indeksów tablic i łańcuchów


Opcje kompilatora g77

-Ikatalog dodaje katalog do ścieżki poszukiwań plików INCLUDE

-Lkatalog dodaje katalog do ścieżki poszukiwań bibliotek

-lbiblioteka dodaje bibliotekę zawartą w pliku biblioteka.so lub biblioteka.a przy linkowaniu

-Dmakro definiuje makro i nadaje mu wartość 1

-Dmakro=wart definiuje makro i nadaje mu wartość wart

-Umakro anulowanie definicji makro

-Opoziom optymalizacja na poziomie poziom: O0 brak optymalizacji, O2 optymalizacja nieagresywna, O3 i wyżej optymalizacja agresywna


Opcje kompilatora g77

-ffree-form

-fno-fixed-form swobodny format linii kodu źródłowego w stylu Fortranu 90

-ff90 dopuszcza pewne konstrukcje Fortranu 90

-ffvax kod źródłowy jest interpretowany jak przez kompilatory komputerów VAX

-ffixed-line-length-n ustala długość linii kodu źródłowego na n.

-fugly-assumed specyfikacja taka, jak A(1) oznaczna dowolną długość, jak specyfikacja A(*)

-fonetrip pętla DO jest wykonywana przynajmniej raz, niezależnie od relacji między dolnym a górnym ogranicznikiem

-fcase-upper wszystkie litery oprócz tych w łańcuchach są przekształcane w duże

-fcase-lower wszystkie litery oprócz tych w łańcuchach są przekształcane w małe

-fcase-preserve zachowuje oryginalną wielkość liter


Opcje kompilatora g77

-pedantic ostrzega gdy w kodzie źródłowych pojawiają się rozszerzenia ANSI Fotrtranu 77

-pedantic-errors jak wyżej ale rozszerzenia są traktowane jak błędy

-w nie drukuje ostrzeżeń

-Wno-globals nie ostrzega, jeżeli dana nazwa jest raz użyta jako funkcja lokalna a raz jako funkcja zewnętrzna lub podprogram

-Wimplicit ostrzega, jeżeli do deklaracji danej zmiennej/funkcji jest wykorzystana reguła pierwszej litery

-Wunused ostrzega, jeżeli zmienna jest zadeklarowana ale nigdy nie użyta

-Wuninitialized ostrzega, jeżeli zmienna nie jest zainicjalizowana

-Wall dwie poprzednie opcje razem

-Wsurprising ostrzega, jeżeli pojawiają się “dziwne” konstrukcje, których interpretacja może zależeć od kompilatora.


Opcje kompilatora g77

Przykład kodu, gdzie zostanie ogłoszony fałszywy alarm, jeżeli użyjemy opcji

–Wuninitialized

SUBROUTINE MAYBE(FLAG)

LOGICAL FLAG

IF (FLAG) VALUE = 9.4

...

IF (FLAG) PRINT *, VALUE

END

Przykład wyrażenia, które może być różnie interpretowane (użyteczność opcji

–Wsurprising):

X**-Y*Z (X**(-Y))*Z g77

X**(-(Y*Z)) większość innych kompilatorów

(zasady van Tassela: Nawiasy kosztują mniej niż błędy

Również naczelna zasada van Tassela:BUZI (Bez Udziwnień Zapisuj Idioto)


Opcje kompilatora g77

-ffast-math optymalizuje wyrażenia arytmetyczne (może być “niebezpieczne”)

-funroll-loops optymalizuje pętle DO ale nie DO WHILE

-funroll-all-loops optymalizuje wszystkie pętle

-Wl,opcje (oddzielone przecinkiem) przekazuje opcje do linkera (np. –Wl,-Bstatic zmusza do statycznego wbudowania bibliotek do kodu)

-Wa,opcje to samo dla asemblera

-Wp,opcje to samo dla preprocesora

-Xlinker arg przekazuje argumenty arg do linkera


  • Login