Co to jest plik obiektowy?
Plik obiektu to plik komputerowy generowany przez program o nazwie kompilator i zawiera dane, a także instrukcje. Kompilatory tłumaczą kod źródłowy języka programowania na pośrednie odczytanie maszyny, zwany kodem obiektu. Mniejsze programy mogą być skompilowane w jednym pliku obiektu, podczas gdy większe programy są zwykle kompilowane w kilku plikach powiązanej funkcji. Te poszczególne pliki obiektów łączą informacje o linku i systemu operacyjnego, które są dodawane do tworzenia programu wykonywalnego.
W powszechnej praktyce plik obiektu jest oznaczony przez rozszerzenie pliku „.obj”. Istnieje jednak kilka różnych formatów dla tych plików. Najczęstsze są format modułu obiektowego Intel® (OMF) oraz format wspólnego pliku obiektowego (Coff) systemu Windows & Reg i UNIX® System V. W wielu systemach Inix® format wykonywalny i połączony (ELF) zastąpił Coff.
Niezależnie od formatu plik obiektu zwykle zawiera trzy typy informacjeTo pozwala na interakcję z innymi modułami programu. Procedury i dane, które są otwarte na odniesienie zewnętrzne, przypisane są nazwy, za pomocą których można je wywołać z innych modułów. Podobnie odnotowane są odniesienia do informacji poza modułem, ale nie przypisano nazwy. Po połączeniu plików bezimienne odniesienia zostaną przypisane nazwę podaną w module, w którym zostały pierwotnie zdefiniowane. Nazwy lokalne są używane do instrukcji i danych, o których mowa wyłącznie w module.
Nie cały kod połączenia jest przechowywany jako pliki obiektów. Biblioteki to kolekcje wstępnie skompilowanych procedur, które są przechowywane jako kod obiektu. Są one produkowane w taki sam sposób jak pliki obiektowe i są przydatne do przechowywania często nazywanych procedurami. Gdy linker nie znajdzie odniesienia w innych plikach obiektów, automatycznie wyszukuje go w pliku bibliotecznym. Większość implementacji języka programowaniaPrzyjdź ze standardową biblioteką funkcji.
Za pomocą dynamicznego łączenia plik obiektowy może być jednocześnie używany przez wiele programów wykonywania. Zamiast wiązania kodu obiektowego z programem po połączeniu, jest to pobierane po załadowaniu programu lub w czasie wykonywania po odwołaniu procedury. W środowisku Windows® są one znane jako biblioteki dynamiczne i są oznaczone rozszerzeniem „.dll”. Systemy podobne do UNIX® często określają ten typ pliku dynamiczny obiekt współdzielony (DSO). Ten typ pliku obiektów może być również zaimplementowany do użytku z konkretnym programem i byłby częścią instalacji tego programu.