2013-04-24 3 views
10

पाया गया था, मैं autotools में नया हूं, और इस tutorial का पालन करता हूं। लेकिन मैं इस त्रुटियों का समाधान कर सकता नहीं,ऑटोमैटिक त्रुटि: AM_INIT_AUTOMAKE का कोई उचित आमंत्रण

$ automake 
    configure.ac: error: no proper invocation of AM_INIT_AUTOMAKE was found. 
    .. 
    Makefile.am: error: required file './depcomp' not found 
    .. 
    /usr/share/automake-1.12/am/depend2.am: error: am__fastdepCC does not appear in AM_CONDITIONAL 
    .. 
    /usr/share/automake-1.12/am/depend2.am: error: AMDEP does not appear in AM_CONDITIONAL 
    .. 

मेरी configure.ac फ़ाइल

# -*- Autoconf -*- 
    # Process this file with autoconf to produce a configure script. 

    AC_PREREQ([2.69]) 
    AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS]) 
    AM_INIT_AUTOMAKE(hello,1.0) 
    AC_CONFIG_SRCDIR([config.h.in]) 
    AM_CONFIG_HEADERS(config.h) 

    # Checks for programs. 
    AC_PROG_CC 

    # Checks for libraries. 

    # Checks for header files. 
    AC_CHECK_HEADERS([sys/time.h]) 

    # Checks for typedefs, structures, and compiler characteristics. 

    # Checks for library functions. 
    AC_CHECK_FUNCS([gettimeofday]) 

    AC_CONFIG_FILES([Makefile]) 
    AC_OUTPUT 

मैं इंटरनेट पर समाधान के लिए जाँच की है, मेरे configure.ac ठीक लग रहा है, नहीं पता है कि यह गलत है।

उत्तर

2

आपको इसे लाइन से ठीक करना होगा।

सबसे पहले, आपके Makefile.am आवश्यक depcomp। तो, आप अपने फ़ोल्डर में कॉपी करने के लिए है (इस चरण के लिए तुम इतनी automake --add-missing चला सकते हैं लापता फ़ाइलें स्वचालित रूप से जोड़ने के लिए के रूप में):

$ aclocal 
:

cp -a /usr/share/automake-X.XX/depcomp . 

दूसरे, आप aclocal पहले automake को चलाने के लिए है

अंत में, आप automake चला सकते हैं:

$ automake 
$ autoconf 
23

आपने & को अपनी configure.ac से पेस्ट किया था? जो कुछ भी साइट है, आपको इसे अपने बुकमार्क से हटा देना चाहिए!

आप एक ही चीज करने के लिए पुराने AM_INIT_AUTOMAKE तरीके से पैकेज संस्करण को इंगित करने के लिए नए AC_INIT तरीके को मिश्रित कर रहे हैं। दोनों मत करो। (पुराना और नया 10 साल पहले हुए एक स्विच का संदर्भ लें।) ऑटोमैक 1.13 से शुरू करने के लिए AM_INIT_AUTOMAKE पर दो तर्कों के साथ कॉल करने का पुराना तरीका कोई लंबा नहीं है।

अपने मामले में, AM_INIT_AUTOMAKE तर्कों को हटाकर, और AC_INIT को सही ढंग से सेट करने के लिए आपके प्रोजेक्ट के नाम और संस्करण को प्रतिबिंबित करना पर्याप्त होना चाहिए।

the automake manual के साथ शुरू करने के लिए बहुत सरल configure.ac के अद्यतित उदाहरण के लिए देखें।

automake स्वयं को कॉल करने के बजाय, बस autoreconf -vfi का उपयोग करें ताकि यह सभी प्रासंगिक टूल को सही क्रम में चला सके और लापता फ़ाइलों को इंस्टॉल कर सके।

+0

आप सही हैं, यह काम किया, बहुत बहुत धन्यवाद। – arslan

+0

मुझे नवीनतम उदाहरणों की तलाश करनी चाहिए। – arslan

+0

autoreconf का उपयोग करने के लिए अच्छा बिंदु। मुझे यह नहीं पता था। – jmmk

0

मेरे मामले में, 2.2.6 से 2.4.6 के लिए libtool को अद्यतन करने। ps: मैं automake के 1.15 संस्करण का उपयोग करता हूं। एक्लोकल और ऑटोहेडर चलाने से पहले libtoolize चलाएं।

संबंधित मुद्दे