Co to jest plik obiektowy?

Plik obiektowy to plik komputerowy generowany przez program o nazwie kompilator i zawiera dane oraz instrukcje. Kompilatory tłumaczą kod źródłowy języka programowania na pośrednią formę do odczytu maszynowego znaną jako kod obiektowy. Mniejsze programy mogą być kompilowane w jednym pliku obiektowym, podczas gdy większe programy są zwykle kompilowane w kilka plików powiązanych funkcji. Do tych indywidualnych plików obiektowych dołącza się linker, a informacje specyficzne dla systemu operacyjnego są dodawane w celu utworzenia programu wykonywalnego.

W powszechnej praktyce plik obiektowy jest oznaczony rozszerzeniem „.obj”. Istnieje jednak kilka różnych formatów tych plików. Najpopularniejsze to Intel® Relocatable Object Module Format (OMF) oraz Common Object File Format (COFF) w systemach Windows® i UNIX® System V. W wielu systemach INIX® format wykonywalny i możliwy do połączenia (ELF) wymienić COFF.

Niezależnie od formatu plik obiektowy zazwyczaj zawiera trzy typy informacji, które pozwalają mu na interakcję z innymi modułami programu. Procedurom i danym otwartym na odwołania zewnętrzne przypisywane są nazwy, za pomocą których można je wywoływać z innych modułów. Podobnie, odniesienia do informacji poza modułem są odnotowywane, ale nie mają przypisanej nazwy. Gdy pliki zostaną połączone, do nienazwanych odniesień zostanie przypisana nazwa nadana im w module, w którym zostały pierwotnie zdefiniowane. Lokalne nazwy są używane dla instrukcji i danych, do których odnoszą się wyłącznie w module.

Nie wszystkie możliwe do powiązania kody są przechowywane jako pliki obiektowe. Biblioteki są kolekcjami wstępnie skompilowanych procedur przechowywanych jako kod obiektowy. Są one tworzone podobnie jak pliki obiektowe i są przydatne do przechowywania często nazywanych procedur. Gdy linker nie znajdzie odniesienia w innych plikach obiektowych, automatycznie wyszuka je w pliku biblioteki. Większość implementacji języka programowania zawiera standardową bibliotekę funkcji.

Dzięki dynamicznemu łączeniu plik obiektowy może być jednocześnie używany przez wiele wykonujących programów. Zamiast powiązać kod obiektu z programem po połączeniu, jest on pobierany, gdy program jest ładowany lub w czasie wykonywania, gdy odwołuje się procedura. W środowisku Windows® są one znane jako biblioteki linków dynamicznych i są oznaczone rozszerzeniem „.dll”. Systemy podobne do Unix® często określają ten typ pliku jako dynamiczny obiekt współdzielony (DSO). Ten typ pliku obiektowego można również zaimplementować do użytku z określonym programem i byłby on częścią instalacji tego programu.

INNE JĘZYKI

Czy ten artykuł był pomocny? Dzięki za opinie Dzięki za opinie

Jak możemy pomóc? Jak możemy pomóc?