Jawaban:
Ini adalah file tekstual yang menyertakan deskripsi perpustakaan.
Ini memungkinkan libtool
untuk membuat nama platform-independent.
Misalnya, libfoo
buka:
Di bawah 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 antara platform dengan libtool
memungkinkan untuk memahami apa yang terjadi dengan:
Tanpa tergantung pada platform implementasi perpustakaan tertentu.
libtool
untuk menautkan file objek ( gnu.org/software/libtool/manual/html_node/Using-Automake.html ) tetapi jika saya ingin mendistribusikan perpustakaan tanpa .la, artinya itu akan sangat sulit untuk ditautkan dengan itu menggunakan Cygwin atau mingw?
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:
Dalam dunia yang sempurna, setiap pustaka statis yang memerlukan dependensi akan memiliki file .pc untuk pkg-config, dan setiap paket yang mencoba menautkan pustaka ke pustaka itu akan menggunakan pkg-config --static untuk mendapatkan pustaka yang akan ditautkan.
Saya menemukan penjelasan yang sangat bagus tentang file .la di sini http://openbooks.sourceforge.net/books/wga/dealing-with-libraries.html
Rangkuman (Cara saya mengerti): Karena libtool menangani 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.