USUX W08

Dokument: pdf (85.8 KB)
  • 4 stron
Opublikowany 2017-07-23 02:12:34

Wykład 8 Środowisko programistyczne systemu UNIX 1. Narzędzia programistyczne • kompilatory np. C, C++: gcc, g++, cc, c++, acc • generatory analizatorów składniowych i leksykalnych: bison, flex • asemblery: as • program śledzący (debyugger): gdb + DDD • program make • system zarządzania wersjami: CVS, SCCS • programy do tworzenia bibliotek: av, gcc 2. Etapy trzoenia programu (język C) kod źródłowy plik.c kod źródłowy ostateczny (plik.i) kod asemblera optymalizacja plik.s kod binarny relokowalny plik.o kod binarny wykonywalny a.out kompilacja wstępna prekompilacja (preprocesor) ld konsolidacja 3. Program gcc (GNU) gcc [opcje] plik [plik...] • opcje (wybrane) ◦ -E – zatrzymamy się na etapie prekompilacji (kod -> stdout) ◦ -S – zatrzymanie po kompilacji właściwej (plik.s) ◦ -c – zatrzymanie po asemblacji (plik.o) ◦ -D makro – definicja makra #define, nadpisuje definicję w pliku ◦ -U makro – usunięcie makra ◦ -o poziom – optymalizacja ◦ -g – włączenie do kodu wynikowego dodatkowych informacji dla kodu śledzącego ◦ -o nazwa - nazwa pliku z kodem wykonywalnym ◦ -I katalog – wskazanie katalogu z lokalnymi plikami nagłówkowymi ▪ #include -> /usr/include ▪ #include "nazwa.h" -> katalog bieżący + katalog -I ◦ -L katalog – włączenie katalogu do ścieżki poszukiwań bibliotek LD_LIBRARY_PATH na czas działania kompilatora ◦ -L identyfikator biblioteki ▪ libindentyfikator.a ▪ libidentyfikator.so ◦ std=standard – standard języka (C, C+++: c90, c89, c99, c1x, c++98, c++03, c++0x, c+ +11, c++14, c++1z ◦ -ansi ◦ -traditional ◦ -pipe – używa łączy zamiast plików pośrednich • pliki ◦ .c ◦ .cc, .CC, .cp, .cxx, .cpp, .c++ ◦ .i, .ii ◦ .s ◦ .o ◦ .h ◦ .so – biblioteka dzielona ◦ .a – biblioteka statyczna • przykłady użycia ◦ gcc program.c -> a.out ◦ gcc -o prog prog.c fun1.c fun2.c input.c -lm ◦ gcc -I ./headers main.c input.c fun.c ◦ gcc main.o -L. -usux.a 4. Biblioteki • libident.a – biblioteka statyczna • libident.so – lib ident.so – biblioteka dynamiczna 4.1 Tworzenie bibliotek statycznych • ar [opcje] archiwum plik... • opcje ◦ -d usuwa plik z archiwum ◦ -q dodaje plik na końcu archiwum ◦ -r zamienia lub dodaje plik w archiwum\ ◦ -u razem z r zamienia plik, gdy jest nowszy ◦ -s ponowne utworzenie tablicy symboli ◦ -x ekstrakcja pliku z archiwum ◦ -t wypisuje zawartość ◦ -v szczegółowe informajce np. gcc -c input.c fun.c ar -rv libusux.a input.o, fun.o gcc – prog gcc -o prog main.o -L. lusux 4.2 Tworzenie bibliotek dzielonych • opcje gcc • fPIC – position independent code • shared – tworzy obiek typu shard • WL, options – opcje dla konsolidatora libm.a libusux.a • -Wall – włącza warningi gcc -Wall -fPIC, -c input. fiun.c gcc -shared -Wl, -soname, libusux.so -o libusux.so input.c fun.o.... • modyfikacja ściezki poszukiwania bibliotek ◦ exporT ld_library_path="katalog:$LD_LIBARY_PATH" ":$LD_LIBRARY_PATH" – katalog bieżący • Programy pomocnicze • nm – wypisuje informacje z tablicy symboli • strip – usuwa tablicę symboli z pliku wykonywanego lub biblioteki 6. Program śledzący gdb [opcje] program [core] • warunek śledzenia -> kompilacja gcc -g • wybrane polecenia ◦ help ◦ break plik:numer_wiersza – tworzy pułapkę ◦ break funkcaprzy funkcji odstniemy ◦ next ◦ step ◦ continue – konynuuje do pułapki ◦ man ◦ man arg1 arg2 ◦ set args args,1rg2= ◦ set args, arg2, arg2 ◦ display wyrażenie ◦ print wyrażenie ◦ watch ◦ file ◦ hist [plik:] numer_wiersza ◦ whatis wyrażenie ◦ set

Tagi:

Komentarze do: USUX W08 • 0