Libtool .la फ़ाइल किसके लिए हैं?


जवाबों:


139

यह एक टेक्स्ट फाइल है जिसमें लाइब्रेरी का विवरण शामिल है।

यह libtoolप्लेटफ़ॉर्म-स्वतंत्र नाम बनाने की अनुमति देता है।

उदाहरण के लिए libfoo:

लिनक्स के तहत:

/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

साइगविन के तहत :

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

विंडोज MinGW के तहत:

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

तो libfoo.laप्लेटफ़ॉर्म के बीच एकमात्र ऐसी फ़ाइल है जिसे libtoolसमझने की अनुमति देकर प्लेटफार्मों के बीच संरक्षित किया जाता है:

  • पुस्तकालय निर्भरताएँ
  • वास्तविक फ़ाइल नाम
  • लाइब्रेरी संस्करण और संशोधन

पुस्तकालयों के एक विशिष्ट मंच कार्यान्वयन के आधार पर बिना।


5
तो आप कैसे .la फ़ाइल को एक प्लेटफ़ॉर्म विशिष्ट साझा की गई फ़ाइल में ले जा सकते हैं, जैसे libfoo.la -> libfoo.so। *
theactiveactor

6
आप libfoo.la को केवल मेटा जानकारी में नहीं रख सकते हैं, अर्थात libfoo.la (शाब्दिक फ़ाइल) में लिखा है कि आपको libfoo.so.xyz कहाँ मिलना चाहिए
Artyom

4
क्या इसका मतलब यह है कि .la फ़ाइल उत्पन्न करने के लिए, मुझे libtool (जैसे ऑटोमेटेक से) का उपयोग करने की आवश्यकता है? कोई libtoolऑब्जेक्ट फ़ाइलों ( gnu.org/software/libtool/manual/html_node/Using-Automake.html ) को लिंक करने के लिए भरोसा कर सकता है, लेकिन अगर मैं .la के बिना लाइब्रेरी वितरित करना चाहता हूं, तो क्या इसका मतलब लिंक करना बहुत मुश्किल होगा। यह Cygwin या mingw का उपयोग करने के साथ?
dma_k

इस स्थिति में कि कोई भी इस संस्करण सामग्री को अक्षम करना चाहता है, आप -void-version का उपयोग अपने _la_LDFLAGS के बजाय
-version

14

Http://blog.flameeyes.eu/2008/04/14/what-about-those-la-files के अनुसार , उन्हें निर्भरताएं संभालने की आवश्यकता है। लेकिन pkg-config का उपयोग करना एक बेहतर विकल्प हो सकता है:

एक आदर्श दुनिया में, निर्भरता की आवश्यकता वाले प्रत्येक स्थिर पुस्तकालय के पास pkg-config के लिए अपनी स्वयं की .pc फ़ाइल होगी, और उस पुस्तकालय से सांख्यिकीय रूप से लिंक करने का प्रयास करने वाला प्रत्येक पैकेज लिंक करने के लिए पुस्तकालयों को प्राप्त करने के लिए pkg-config --static का उपयोग करेगा।


10

मुझे यहाँ .la फ़ाइलों के बारे में बहुत अच्छी व्याख्या मिली। http://openbooks.sourceforge.net/books/wga/dealing-with-lbooks.html

सारांश (जिस तरह से मुझे समझ में आया): क्योंकि libtool स्थिर और गतिशील पुस्तकालयों के साथ आंतरिक रूप से व्यवहार करता है - (साझा करने योग्य-साझा करने योग्य या स्थिर करने के लिए) यह लाइब्रेरी फ़ाइलों पर एक आवरण बनाता है जो इसे बनाता है। उन्हें लिबेटूल समर्थित वातावरण में बाइनरी लाइब्रेरी फ़ाइलों के रूप में माना जाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.