Memahami Perpustakaan Statik dan Dikongsi
Statik perpustakaan (fail.a) dimasukkan ke dalam aplikasi semasa fasa pemautan, di mana salinan keseluruhan perpustakaan disepadukan ke dalam boleh laku akhir. Akibatnya, aplikasi ini serba lengkap, dengan fungsi pustaka mudah diakses pada setiap masa.
Sebaliknya, objek kongsi (fail.so) hanya menjalani semakan keserasian masa jalan terhadap fail pengepala (.h) yang sepadan semasa menghubungkan. Ia tidak dimuatkan sehingga fasa masa jalan apabila diperlukan, memberikan kelonggaran untuk menggantikan fail ".so" tanpa menyusun semula aplikasi.
Perbezaan Antara Objek Dikongsi dan DLL
Walaupun kedua-dua objek kongsi dan perpustakaan pautan dinamik (DLL) berkongsi sambungan ".so", mereka mempamerkan beberapa perbezaan ketara pada sistem yang mematuhi Linux dan POSIX.
Objek yang dikongsi biasanya dimuatkan secara automatik apabila aplikasi bermula dan kekal tersedia sebagai entiti yang berasingan. DLL, bagaimanapun, memerlukan pemuatan eksplisit melalui panggilan dlopen() dalam aplikasi.
Arkib Dikongsi: Entiti Unik
Arkib yang dikongsi ialah perpustakaan statik yang tidak pernah digunakan secara langsung melalui aplikasi. Mereka bertindak sebagai perantara, membenarkan perpustakaan statik lain untuk menghubungkannya dengan mereka dan menggabungkan fungsi atau sumber tertentu ke dalam kod mereka sendiri. Arkib kongsi memerlukan bendera kompilasi khas (-fPIC dan -export-shared) untuk dikongsi dengan perpustakaan dinamik.
Nota Tambahan daripada Kemas Kini
Walaupun menyamakan objek kongsi dengan DLL , syarikat tempat penyoal bekerja menggunakan istilah "DLL" secara bahasa sehari-hari untuk merujuk kepada perpustakaan kongsi. Tambahan pula, sebutan "S" untuk arkib kongsi ialah konvensyen khusus syarikat dan bukannya standard industri.
Ringkasnya, perpustakaan statik menyediakan aplikasi serba lengkap, manakala objek kongsi menawarkan fleksibiliti masa jalan tanpa mengorbankan kebolehaksesan kod. Perkongsian arkib merapatkan jurang antara perpustakaan statik dan dikongsi, membolehkan fungsi dikongsi merentas berbilang modul.
Atas ialah kandungan terperinci Apakah Perbezaan Antara Perpustakaan Statik, Objek Dikongsi dan DLL dalam C/C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!