2012-12-22 18 views

Odpowiedz

11

Pliki obiektów są używane przez linker do kompilowania kompletnych plików wykonywalnych (lub bibliotek).

Zazwyczaj dane wyjściowe kompilatora można odczytać jako "bezpośrednio", a składnia zależy od kompilatora. Na przykład w przypadku GCC:

gcc foo.c bar.c ... 

wytworzy wykonywalny plik i bez pośredniego przedmiot pozostanie (ale najprawdopodobniej nie został wygenerowany - a następnie usunięte).

Pliki obiektów służą do tworzenia przyrostowej wersji. Kompilujesz każdy plik źródłowy (lub grupę plików źródłowych) do plików obiektowych, a następnie łączysz je wszystkie razem w pliku wykonywalnym. Pozwala to tylko na ponowną kompilację plików źródłowych, które zmieniły się od czasu ostatniego zbudowania, oszczędzając potencjalnie dużo czasu.
Albo możesz użyć tych samych plików obiektów do połączenia różnych plików wykonywalnych (ponownie użyj części swojej kompilacji, aby na przykład wygenerować bibliotekę wykonywalną i współużytkowaną), ponownie oszczędzając czas i zasoby w porównaniu do kompilowania wszystkiego za każdym razem.

Pliki obiektów nie są "potrzebne" z teoretycznego punktu widzenia. Są po prostu bardzo praktyczne (i faktycznie konieczne technicznie z niektórymi (najbardziej?) Narzędziami, będącymi rzeczami, które asembler wie, jak produkować, a linker wie, jak się połączyć).

Powiązane problemy