Bagaimanakah pemautan C berfungsi dalam amalan?
Dalam C , pemautan ialah proses menggabungkan berbilang fail objek (fail.o) dan perpustakaan (fail .a atau .so) ke dalam satu fail boleh laku (.exe atau .out). Pemaut menyelesaikan rujukan luaran antara fail objek dan pustaka dan mencipta jadual simbol dan maklumat lain yang diperlukan untuk boleh laku dijalankan.
Bagaimanakah pemautan berlaku?
Penempatan Semula dalam Amalan
Untuk menggambarkan proses penempatan semula, pertimbangkan contoh berikut:
// a.cpp int a = 10; int main() { return a; }
// b.cpp int b = 20;
Apabila kami menyusun a.cpp dan b.cpp, kami mendapat dua fail objek: a.o dan b.o. Fail a.o mengandungi takrif pembolehubah a, manakala b.o mengandungi takrif pembolehubah b.
Apabila kita memautkan a.o dan b.o bersama-sama, penyambung perlu memastikan bahawa rujukan kepada a dan b dalam titik boleh laku terakhir ke alamat yang betul. Ini dilakukan dengan melakukan penempatan semula.
Semasa penempatan semula, pemaut mengubah suai alamat a dan b dalam boleh laku untuk memadankan alamat akhir mereka dalam ingatan. Sebagai contoh, jika a diperuntukkan pada alamat 0x1000 dan b diperuntukkan pada alamat 0x2000, pemaut akan mengubah suai semua rujukan kepada a dalam boleh laku kepada menunjuk kepada 0x1000 dan semua rujukan kepada b untuk menunjuk kepada 0x2000.
Proses ini memastikan bahawa boleh laku boleh mengakses pembolehubah a dan b dengan betul apabila ia berlari.
Atas ialah kandungan terperinci Bagaimanakah C Linking Berfungsi: Daripada Fail Objek kepada Boleh Laku?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!