.la और .a पुस्तकालयों के बिना autotools/libtool के साथ .so मॉड्यूल कैसे बनाएं और इंस्टॉल करें भी --prefix पथ में स्थापित किया जा रहा है?बिल्डिंग .so मॉड्यूल बिना autlaools/libtool के साथ .la और .a वेरिएंट स्थापित किए जा रहे हैं
वर्तमान में मैं Makefile.am निम्नलिखित का उपयोग कर रहा:
lib_LTLIBRARIES = libCurlDownloader.la
libCurlDownloader_la_SOURCES = Curl.cpp
libCurlDownloader_la_LDFLAGS = -module -avoid-version
यह काम करता है, लेकिन इसके अलावा में यह भी स्थापित करता है libCurlDownloader.la और libCurlDownloader.a libCurlDownloader.so करने के लिए, क्या अवांछनीय है।
# अद्यतन 1
यह ए, उत्पन्न नहीं हो बनाने के लिए का उपयोग करके संभव है या तो
./configure --disable-static
या
AC_ENABLE_SHARED(yes)
AC_ENABLE_STATIC(no)
configure.ac में
लेकिन यह अभी भी सवाल है कि कैसे बनाना है .la नहीं बी eso स्थापित होने पर स्थापना --prefix में स्थापित eing।
अद्यतन # 2
यह स्थापना से .la फ़ाइलें निकालने के लिए संभव है का उपयोग कर उपसर्ग
install-exec-hook: find $(DESTDIR)$(libdir) -type f -name \*.la -delete
आपके पास एक मामूली टाइपो है (इंस्टॉल-एक्ट-हुक होना चाहिए)। – Compholio
मुझे लगता है कि आप नहीं कर सकते हैं, डेबियन पैकेजर्स डेब पैकेज – sherpya
में हैंड ला फाइलों द्वारा हटा रहे हैं कि 'install-exec-hook' एक बुरा विचार की तरह लगता है। यह निर्देशिका से सभी .la फ़ाइलों को हटा देगा, न केवल आपके प्रोजेक्ट द्वारा जेनरेट किए गए। यदि 'DESTDIR' का उपयोग किया जाता है तो कोई समस्या नहीं है, लेकिन अन्यथा बहुत गलत है। स्थिर लिंकिंग निर्भरताओं के लिए – Maarten