GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara membuat versi perpustakaan bersama di Linux?

Versi singkatnya adalah Anda melakukan ini melalui soname perpustakaan. Baca bab 3 di http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html serta bab 3.3 Pembuatan Versi ABI di http://www.akkadia.org/drepper/dsohowto.pdf


Linux menggunakan strategi berikut - Anda (pemelihara sistem) menyediakan symlink dari file pustaka bersama 'spesifik', seperti ini:

lrwxrwxrwx 1 root root    16 2011-09-22 14:36 libieee1284.so -> libieee1284.so.3
lrwxrwxrwx 1 root root    20 2011-09-22 14:36 libieee1284.so.3 -> libieee1284.so.3.2.2
-rw-r--r-- 1 root root 46576 2011-07-27 13:08 libieee1284.so.3.2.2

Dengan cara ini, pengembang dapat menautkan ke -lieee1284 (versi ABI apa pun), atau libieee1284.so.3 atau bahkan ke versi rilis dan tambalan tertentu (3.2.2)


Cara terbaik untuk menangani ini adalah menggunakan libtool, yang melakukan pembuatan versi untuk Anda.

Pada dasarnya, informasi versi tidak (atau tidak terutama, tidak tahu dari kepalaku) dikodekan dalam perpustakaan itu sendiri, melainkan dalam nama filenya. Nomor versi biasanya diberikan dalam format tiga titik, dengan nomor utama bertambah untuk setiap jeda dalam kompatibilitas ABI menurun, tengah untuk jeda dalam kompatibilitas ABI naik, dan minor untuk tambalan yang tidak mengubah ABI.

Seperti yang dicatat qdot, symlink di direktori lib menyediakan versi penting. Ada symlink tanpa nomor versi (libfoo.so) untuk header pengembangan yang diinstal saat ini, symlink dengan nomor utama untuk setiap versi utama yang diinstal (libfoo.so.1) dan file asli dengan nomor versi lengkap. Biasanya, program ditautkan untuk menggunakan libfoo.so.1 saat runtime sehingga beberapa versi utama dapat digunakan bersamaan.


Linux
  1. Cara memeriksa versi perpustakaan libc di Debian Linux

  2. Cara memeriksa versi Redhat

  3. Cara Memasang Pustaka Ncurses Di Linux

  1. C++ Dynamic Shared Library di Linux

  2. Cara mengatur googleTest sebagai perpustakaan bersama di Linux

  3. Bagaimana saya bisa menautkan ke versi lama dari perpustakaan bersama

  1. Cara Memeriksa Versi MySQL di Linux

  2. Pengantar Pustaka Bersama Linux (Cara Membuat Pustaka Bersama)

  3. Cara menginisialisasi perpustakaan bersama di Linux