Libtool's .la dosyası nedir?


Yanıtlar:


139

Kitaplığın açıklamasını içeren metinsel bir dosyadır.

libtoolPlatformdan bağımsız adlar oluşturulmasına izin verir .

Örneğin, şu libfooadrese gider:

Linux altında:

/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

Altında Cygwin :

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

Windows MinGW altında:

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

Yani libfoo.latarafından platformlar arasında korunur yalnızca dosyasıdır libtoolile ne olacağını anlamak için izin:

  • Kütüphane bağımlılıkları
  • Gerçek dosya adları
  • Kütüphane sürümü ve revizyonu

Belirli bir platforma bağlı olmadan kütüphanelerin uygulanması.


5
.la dosyasını libfoo.la -> libfoo.so gibi platforma özel bir paylaşılan lib dosyasına nasıl çevirirsiniz? *
theactiveactor

6
Libfoo.la sadece meta bilgileri tutamazsınız, yani libfoo.la'da (metin dosyası) libfoo.so.xyz nerede bulunmalı yazılıdır
Artyom

4
Bu .la dosyası oluşturmak için libtool kullanmam gerektiği anlamına mı geliyor (örn. Automake'den)? libtoolNesne dosyalarını ( gnu.org/software/libtool/manual/html_node/Using-Automake.html ) bağlamak için güvenebilirsiniz, ancak .la olmadan bir kütüphane dağıtmak istiyorsam, bağlantı kurmanın çok zor olacağı anlamına gelir Cygwin veya mingw kullanarak?
dma_k

Herhangi birinin bu sürüm öğelerini devre dışı bırakmak istemesi durumunda, _version-info yerine _la_LDFLAGS ürününüzde -avoid-version kullanabilirsiniz
laishiekai

14

Http://blog.flameeyes.eu/2008/04/14/what-about-those-la-files'a göre , bağımlılıkları ele almaları gerekiyor. Ancak pkg-config kullanmak daha iyi bir seçenek olabilir:

Mükemmel bir dünyada, bağımlılık gerektiren her statik kitaplığın pkg-config için kendi .pc dosyası olur ve bu kitaplığa statik olarak bağlanmaya çalışan her paket, kitaplıkların bağlanmasını sağlamak için pkg-config - statik kullanır.


10

Burada .la dosyaları hakkında çok iyi bir açıklama buldum http://openbooks.sourceforge.net/books/wga/dealing-with-libraries.html

Özet (Anladığım şekilde): libtool dahili ve statik kütüphanelerle (--diable-shared veya --disable-static yoluyla) ilgilentiği için oluşturduğu kütüphane dosyalarında bir sarıcı oluşturur. Bunlar, libtool destekli ortamda ikili kütüphane dosyaları olarak ele alınır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.