Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałWiga Wojnarowski Został zmieniony 11 lat temu
1
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
2
-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
3
-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
4
-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.
5
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)
6
-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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.