ऑटोकॉन्फ़, लिबटूल और एक अपरिभाषित AC_PROG_LIBTOOL


17

मैं एक पुस्तकालय बनाने की कोशिश कर रहा हूं, और README निर्देशों को config.ac पर कॉल करना है, फिर बनाते हैं।

दुर्भाग्य से, मैं एक त्रुटि में भाग रहा हूं:

configure.ac:75 :error: possibly undefined macro: AC_PROG_LIBTOOL
    If this token is legitimate please use m4_pattern_allow

अब, मुझे पता है कि मैंने लिबटूल स्थापित किया है (मैं वैज्ञानिक लिनक्स 6.2 (अन-अपग्रेडेड) चला रहा हूं, और स्वचालित रूप से, ऑटोकॉन्फ़, लिबटूल, और लिबटूल-डेपूल के आरपीएम प्राप्त करने के लिए yum --downloadonly का उपयोग किया है)।

वे स्थापित हैं, और libtool वर्तमान में / usr / share / libtool में रहता है। हालाँकि, ऑटोकॉनफ़ इसे खोजने के लिए प्रतीत नहीं हो सकता है।

सभी Google परिणाम 'इंस्टॉल लिबेटूल' प्रकार के थे, जो मुझे बिल्कुल भी मदद नहीं करते हैं। किसी भी मदद या मार्गदर्शन वास्तव में सराहना की जाएगी। मुझे यकीन नहीं है कि अगर मुद्दा यह है कि rpm -i ने यहाँ पर libtool प्राप्त किया है, या अगर मुझे / usr / share / libtool को कहीं और से लिंक करने की आवश्यकता है (ताकि जो और बाकी सब इसे पा सकें)।

जवाबों:


11

मैं सभी "बस रीइंस्टॉल" उत्तरों से संतुष्ट नहीं था जो मैंने पूरे इंटरनेट पर विभिन्न मंचों पर पाया है, इसलिए एक गैर-डिस्ट्रो लिबटूल स्थापित किए बिना इसे हल करने के लिए बाध्य और निर्धारित किया गया था। (मैं CentOS 7 पर चल रहा हूं)

जब मैं https://www.gnu.org/software/automake/manual/html_node/Macro-Search-Path.html पढ़ता हूं तो मेरे सिर के ऊपर का लाइटबल्ब जल उठता है । मैक्रो फ़ाइलों को खोजने के लिए उपयोग किया जाने वाला खोज पथ वह है --prefixजिसे डिफ़ॉल्ट रूप से परिभाषित किया जाता है /usr/local। तो एक पैकेज के लिए ऑटोकॉन्फ़ जो /usr/localखोजों के लिए स्थापित किया जाएगा /usr/local/share/aclocal-APIVERSIONऔर /usr/local/share/aclocal

CentOS7 सहित कई डिस्ट्रोस पर, के बजाय सात मैक्रो फ़ाइलों के libtoolsतहत स्थापित किए जाते हैं । नतीजतन, वे नहीं मिल रहे हैं जब आप जिस पैकेज का निर्माण कर रहे हैं वह उपसर्ग के लिए सेट है ।/usr/share/aclocal/usr/local/share/aclocal/usr/local

इसे ठीक करने के लिए यदि आपके पास पहले से /usr/local/share/aclocalनिर्देशिका है, तो निम्नलिखित को रूट के रूप में टाइप करें:

for file in argz libtool ltdl ltoptions ltsugar ltversion lt~obsolete
do
  ln -s /usr/share/aclocal/$file.m4 /usr/local/share/aclocal/$file.m4
done

इसे ठीक करने के लिए यदि आपके पास कोई /usr/local/share/aclocalनिर्देशिका नहीं है , तो निम्नलिखित को रूट के रूप में टाइप करें:

ln -s /usr/share/aclocal /usr/local/share/aclocal

Voilà - समस्या हल।


महान टिप, कमोबेश यह (suuuper-aggravating, लगातार) मेरे लिए एक CentOS 7 क्लस्टर पर जारी है। यदि आप के साथ परियोजना के जहाज अन्य विकल्पों के साथ शामिल autogen.shकरने के लिए exec autoreconfलाइन को भी संशोधित कर सकते हैं -I /usr/share/alocal, जो कि मैंने वास्तव में किया था। configureस्क्रिप्ट उत्पन्न करने के लिए लागू वास्तविक कमांड तब है autoreconf -v -f -i -I /usr/share/aclocal
TheDudeAbides

11

आपको libtool स्थापित करना होगा

ubuntu में:

sudo apt-get install libtool

रेडहैट आधारित:

yum install libtool

5
प्रश्न ने कहा कि यह समस्या नहीं है।
केविन पेंको

9

मैंने गैर-मानक निर्देशिकाओं में लिबटूल और अन्य को भी स्थापित किया है, और यह त्रुटि वास्तव में ऑटोकैफ़ है जो लिबटूल के एम 4 मैक्रोज़ को खोजने में सक्षम नहीं है। हाँ, यह libtool स्थापित नहीं होने के कारण हो सकता है, लेकिन यह भी एक गैर-मानक इंस्टॉल निर्देशिका में होने के कारण। यहाँ मेरा फिक्स है:

export ACLOCAL_PATH=$HOME/install/libtool/share/aclocal:$ACLOCAL_PATH

जिसे मैंने अपने पास रखा .bash_profile


2
ऐसा करने का एक और तरीका: ऑटोरिकोनेफ -I $ HOME / install / libtool / share / aclocal
Moraru Lilian

1

त्रुटि को ठीक करने के लिए आपको इसे पुन: स्थापित करने की आवश्यकता है ताकि इन चरणों का पालन करें:

1] यदि मौजूदा लिबटूल हटा दें तो स्थापित करें: sudo apt-get purge libtool

2] इसे आधिकारिक वेबसाइट https://www.gnu.org/software/libtool/ से डाउनलोड करें

3] इसे अनटार करें: tar -xzvf "name of the tar_file"

4] फोल्डर डालें और टाइप करें: ./configure && make

5] इसे स्थापित करें: sudo make install

और आप कर रहे हैं, त्रुटि तय होनी चाहिए!


0
configure.ac:75 :error: possibly undefined macro: AC_PROG_LIBTOOL
    If this token is legitimate please use m4_pattern_allow

अब, मुझे पता है कि मैं libtool स्थापित किया है ...

मैंने पाया है कि यह आमतौर पर इंगित करता है कि आपके पास libtoolविकास गियर स्थापित नहीं है (हालांकि आपने libtoolस्थापित किया है)।

आपको libltdl-devडेबियन और उबंटू पर स्थापित करना चाहिए ; और libtool-ltdl-develफेडोरा पर।


यहां पैकेजों की खोज की गई है।

फेडोरा

$ yum search libtool
======================== Name Exactly Matched: libtool =========================
libtool.x86_64 : The GNU Portable Library Tool
======================= Summary & Name Matched: libtool ========================
libtool-ltdl.x86_64 : Runtime libraries for GNU Libtool Dynamic Module Loader
libtool-ltdl.i686 : Runtime libraries for GNU Libtool Dynamic Module Loader
libtool-ltdl-devel.x86_64 : Tools needed for development using the GNU Libtool
                          : Dynamic Module Loader
libtool-ltdl-devel.i686 : Tools needed for development using the GNU Libtool
                        : Dynamic Module Loader
=========================== Summary Matched: libtool ===========================
mingw32-libltdl.noarch : Runtime libraries for GNU Libtool Dynamic Module Loader
mingw64-libltdl.noarch : Runtime libraries for GNU Libtool Dynamic Module Loader

उबंटू

$ apt-cache search libtool
autotools-dev - Update infrastructure for config.{guess,sub} files
libltdl-dev - System independent dlopen wrapper for GNU libtool
libltdl7 - System independent dlopen wrapper for GNU libtool
libtool - Generic library support script
libtool-bin - Generic library support script (libtool binary)
libtool-doc - Generic library support script
...
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.