GNU/Linux >> Belajar Linux >  >> Linux

Untuk apa file .la libtool?

Ini adalah file tekstual yang menyertakan deskripsi pustaka.

Ini memungkinkan libtool untuk membuat nama yang tidak tergantung platform.

Misalnya, libfoo pergi ke:

Di Linux:

/lib/libfoo.so       # Symlink to shared object
/lib/libfoo.so.1     # Symlink to shared object
/lib/libfoo.so.1.0.1 # Shared object
/lib/libfoo.a        # Static library
/lib/libfoo.la       # 'libtool' library

Di bawah Cygwin:

/lib/libfoo.dll.a    # Import library
/lib/libfoo.a        # Static library
/lib/libfoo.la       # libtool library
/bin/cygfoo_1.dll    # DLL

Di bawah Windows MinGW:

/lib/libfoo.dll.a    # Import library
/lib/libfoo.a        # Static library
/lib/libfoo.la       # 'libtool' library
/bin/foo_1.dll       # DLL

Jadi libfoo.la adalah satu-satunya file yang dipertahankan antar platform oleh libtool memungkinkan untuk memahami apa yang terjadi dengan:

  • Ketergantungan pustaka
  • Nama file sebenarnya
  • Versi dan revisi pustaka

Tanpa bergantung pada implementasi platform perpustakaan tertentu.


Menurut http://blog.flameeyes.eu/2008/04/14/what-about-those-la-files, mereka diperlukan untuk menangani dependensi. Tetapi menggunakan pkg-config mungkin merupakan opsi yang lebih baik:

Di dunia yang sempurna, setiap pustaka statis yang membutuhkan dependensi akan memiliki file .pc sendiri untuk pkg-config, dan setiap paket yang mencoba menautkan secara statis ke pustaka tersebut akan menggunakan pkg-config --static agar pustaka dapat ditautkan.


Saya menemukan penjelasan yang sangat bagus tentang file .la di sinihttp://openbooks.sourceforge.net/books/wga/dealing-with-libraries.html

Ringkasan (Cara saya mengerti):Karena libtool berurusan dengan pustaka statis dan dinamis secara internal (melalui --diable-shared atau --disable-static) ia membuat pembungkus pada file pustaka yang dibuatnya. Mereka diperlakukan sebagai file perpustakaan biner dengan lingkungan yang didukung libtool.


Linux
  1. Apa itu halaman yang dipetakan memori dan halaman anonim?

  2. Apa itu file .so.2?

  3. Apa yang setara dengan perintah File Linux untuk windows?

  1. Apa alternatif untuk Semuanya mencari Linux?

  2. Apa file default untuk `hostname`?

  3. Apa implikasi kinerja untuk jutaan file dalam sistem file modern?

  1. Perintah apa yang hilang dari file bashrc Anda?

  2. Untuk Apa Inode Baik?

  3. Apa Penggunaan Sah dari Perintah `sentuh`?