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