2012-09-03 14 views
8

मैं उबंटू 12.04 32 बिट्स पर स्रोत से जी ++ 4.7.1 संकलित करने की कोशिश कर रहा हूं। इस पल के लिए मैंने वास्तव में यह किया है: https://askubuntu.com/questions/168947/how-to-upgrade-g-to-4-7-1 जी ++ 4.7.1 के संकलन से ठीक पहले यह मुझे "LIBRARY_PATH को अनसेट करने" के लिए कहता है (इसलिए मैंने यह किया है)। तो संकलन शुरू होता है, और थोड़ी देर के बाद मैं निम्नलिखित त्रुटि संदेश है:जी ++ 4.7.1 संकलन त्रुटि: 'strsignal' के लिए विरोधी प्रकार

In file included from ../.././gcc/c-lang.c:24:0: 
../.././gcc/system.h:499:20: erreur: conflicting types for ‘strsignal’ 
/usr/include/string.h:566:14: note: previous declaration of ‘strsignal’ was here 
In file included from ./tm.h:19:0, 
       from ../.././gcc/c-lang.c:26: 
./options.h:3738:2: erreur: #error too many masks for ix86_isa_flags 
In file included from ../.././gcc/input.h:25:0, 
       from ../.././gcc/tree.h:27, 
       from ../.././gcc/c-lang.c:27: 
../.././gcc/../libcpp/include/line-map.h:208:38: erreur: ‘CHAR_BIT’ undeclared here (not in a function) 
../.././gcc/../libcpp/include/line-map.h:208:3: erreur: bit-field ‘reason’ width not an integer constant 
../.././gcc/../libcpp/include/line-map.h:208:3: attention : ‘reason’ is narrower than values of its type [enabled by default] 
In file included from ../.././gcc/tree.h:32:0, 
       from ../.././gcc/c-lang.c:27: 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/hwint.h:17:39: erreur: division par zéro dans #if 
../.././gcc/real.h:105:9: erreur: #error "REAL_WIDTH > 6 not supported" 
In file included from ../.././gcc/c-family/c-common.h:26:0, 
       from ../.././gcc/c-tree.h:25, 
       from ../.././gcc/c-lang.c:28: 
../.././gcc/../libcpp/include/cpplib.h:225:3: erreur: bit-field ‘type’ width not an integer constant 
../.././gcc/../libcpp/include/cpplib.h:225:3: attention : ‘type’ is narrower than values of its type [enabled by default] 
../.././gcc/../libcpp/include/cpplib.h:267:3: erreur: #error "Cannot find a least-32-bit signed integer type" 
../.././gcc/../libcpp/include/cpplib.h:269:35: erreur: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cppchar_t’ 
../.././gcc/../libcpp/include/cpplib.h:270:1: erreur: unknown type name ‘CPPCHAR_SIGNED_T’ 
../.././gcc/../libcpp/include/cpplib.h:768:1: erreur: unknown type name ‘cppchar_t’ 
../.././gcc/../libcpp/include/cpplib.h:779:1: erreur: unknown type name ‘cppchar_t’ 
../.././gcc/../libcpp/include/cpplib.h:779:58: erreur: unknown type name ‘cppchar_t’ 
../.././gcc/../libcpp/include/cpplib.h:954:1: erreur: unknown type name ‘cppchar_t’ 

(माफ करना, कुछ त्रुटि संदेशों में फ्रेंच हैं: erreur -> error और division par zéro dans #if -> division by zero in #if)।

समस्या क्या है और इसे हल करने का तरीका क्या है?

(एक अन्य छोटी प्रश्न: क्या ./configure और ./configure -v के बीच अंतर है)

संपादित करें: system.h

/* If the system doesn't provide strsignal, we get it defined in 
    libiberty but no declaration is supplied. */ 
#if !defined (HAVE_STRSIGNAL) \ 
    || (defined (HAVE_DECL_STRSIGNAL) && !HAVE_DECL_STRSIGNAL) 
# ifndef strsignal 
extern const char *strsignal (int); 
# endif 
#endif 
+0

मैंने हाल ही में स्रोत से जीसीसी 4.7.1 बनाया - शायद मेरे नोट्स मदद की जाएंगी: http://steve-lorimer.blogspot.com.au/2012/08/building-gcc.html –

उत्तर

5

में strsignal की तर्ज मैं एक ही समस्या थी। मेरे मामले में, मैंने बैश वैरिएबल को CPATH, LIBRARY_PATH और C_INCLUDE_PATH को अनसेट करके हल किया। उसके बाद, निर्माण ठीक हो गया।

8

मैं

unset LIBRARY_PATH CPATH C_INCLUDE_PATH PKG_CONFIG_PATH CPLUS_INCLUDE_PATH INCLUDE 

इस्तेमाल किया जब से मैं इस मशीन पर रूट पहुँच नहीं है, और इसलिए मैं उन चर का एक बहुत के साथ जोड़ दिया है।

+1

यह सिर्फ निश्चित त्रुटियों के लिए है मैं जीसीसी 5.3.0 संकलित (स्वीकृत उत्तर पर्याप्त परेशान नहीं किया था) –

0

मैंने "unset LIBRARY_PATH CPATH C_INCLUDE_PATH PKG_CONFIG_PATH CPLUS_INCLUDE_PATH INCLUDE" का उपयोग किया। यह मेरी समस्या हल हो गई।

0

अन्य समाधान मेरे लिए काम नहीं करते थे, क्योंकि मैं उन एनवी चर का उपयोग करता हूं ताकि जीसीसी को इसकी कुछ निर्भरताओं को इंगित किया जा सके। इसके अलावा unset टिंग variit एक बहुत ही सटीक ठीक :)

बाहर कर देता है समस्या मैं था कुछ मेरी env में : अनुगामी घोषणाओं वार्स, इसलिए की तरह है की तरह ध्वनि नहीं करता है:

$ export LIBRARY_PATH=/foo/bar:$LIBRARY_PATH 
$ echo $LIBRARY_PATH 
/foo/bar: 

नतीजा यह है कि LIBRARY_PATH होगा है हमेशा मौजूदा निर्देशिका भी शामिल करें। एनवी वैरिएबल को ठीक से सेट करना, : पीछे कोई समस्या नहीं है, समस्या हल हो गई है।