5 Etapów Pracy Kompilatora

1 GCC, G++ - podstawowe informacje, składnia podstawowych...
Author: Irenka Lewiński
0 downloads 0 Views

1 GCC, G++ - podstawowe informacje, składnia podstawowych poleceń i możliwości

2 5 Etapów Pracy KompilatoraPreprocessing - prekompilacja Compilation – kompilacja właściwa Optimization - optymalizacja Assembling – asemblacja kodu Linking - linkowanie

3 5 Etapów Pracy KompilatoraPreprocessing: Tworzenie ostatecznego KODU ŹRÓDŁOWEGO aplikacji Dołączone są dyrektywy #include Podstawienia makroinstrukcji #define Opcja: -E

4 5 Etapów Pracy Kompilatora2. Compilation: Kompilacja do kodu assemblera Wychwytywanie błędów Tworzony jest plik (.s) Opcja: -S

5 5 Etapów Pracy Kompilatora3. Optimization: Zmiany w kodzie assemblera zwiększające efektywność kodu Optymalizacje przydziału rejestrów Usprawnianie sposobu obliczania adresów

6 5 Etapów Pracy Kompilatora4. Assembling: Zamiana kodu assemblerowego na maszynowy 5. Linking: Linker szuka niezidentyfikowanych części kodu Kod maszynowy przypisywany do adresów Plik wykonywalny

7 Kompilowanie i wyjście-E - zatrzymanie na preprocessingu -S - zatrzymanie na etapie kodu assemblera -c - zatrzymanie na assemblacji -save-temps - kompilator nie usuwa plików pośrednich -x - określa język pliku wejściowego -o file_name - specyfikacja pliku wyjściowego Domyślnie: a.out Source_name.o Source-Name.s

8 Kompilowanie i wyjście

9 Szybkość działania programuOptymalizacja Szybkość działania programu Rozmiar pliku wynikowego Szybkość kompilacji

10 Optymalizacja -O0 – brak optymalizacji-O/-O1 – podstawowa optymalizacja -O2 – poziom ZALECANY, uzyskujemy korzystny kompromis pomiędzy szybkością działania, a długością kompilacji -O3 – poziom NIEZALECANY -Os – optymalizacja wielkości pliku

11

12 Opcje ostrzeżeń -Wall – włącza wszystkie możliwe ostrzeżenia dotyczące konstrukcji, które budzą jakiekolwiek kontrowersje -pedantic – badanie zgodności ze standardem ISO, ASCII -fsyntax-only – składnia

13 Opcje ostrzeżeń

14 Opcje ostrzeżeń

15 Opcje preprocesora i linkera-I h_file_path – dodaje pliki nagłówkowe w katalogu h_file_path -H – wypisze nazwy używanych plików (.h) -include file(s) – przetwarza najpierw pliki files, potem dopiero pliki wejściowe -std= / -ansi – określenie standardu -L – ścieżka do folderu z bibliotekami -l – biblioteki (.a)

16 Opcje preprocesora i linkera