Perbedaan antara 'ld' dan 'ld.so'?


8

Walaupun keduanya disebut "linker" dan digunakan untuk menautkan binari, saya tidak dapat benar-benar mengetahui perbedaannya. Adakah yang bisa memberi tahu saya perbedaan mereka?

Jawaban:


8

Tanpa terlalu teknis: Keduanya adalah "penghubung", yaitu alat yang menggabungkan / memuat sepotong kode yang dikompilasi dengan / menjadi bagian lain dari kode yang dikompilasi.

ldadalah penghubung statis, sedangkan ld.sopenghubung dinamis.

Surat so- surat itu, saya percaya, adalah kependekan dari "objek bersama", dan Anda biasanya akan melihatnya sebagai akhiran nama file dari pustaka bersama, yaitu pustaka yang dapat dihubungkan secara dinamis ke dalam program (satu pustaka "dibagi" di antara beberapa program) . Sebaliknya, perpustakaan statis sering memiliki akhiran nama file .a, untuk "arsip" (dibuat oleh arutilitas).

Penghubung statis menautkan program atau pustaka pada waktu kompilasi, biasanya sebagai langkah terakhir dalam proses kompilasi, membuat biner yang dapat dieksekusi atau pustaka. Dalam kasus file executable biner, mungkin biner statis dengan semua perpustakaan dimuat ke dalam biner itu sendiri, atau mungkin biner yang terkait secara dinamis dengan hanya beberapa perpustakaan yang terhubung secara statis.

Tautan dinamis memuat pustaka yang secara dinamis ditautkan pada waktu kompilasi ke dalam ruang alamat proses pada saat run-time.

Lihat manual untuk lddan ld.sodi sistem Anda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.