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.