2013-04-18 3 views
5

मैं क्रॉस कंपाइलर, this tutorial स्थापित करने की कोशिश कर रहा हूं, और जब मैं libgcc बनाना चाहता हूं तो मैंने अपने टर्मिनल में make all-target-libgcc डाला। यह मेकअप फेंकता त्रुटिcompilng libgcc xgcc त्रुटि

checking whether ln -s works... yes 
checking for i586-elf-gcc... /usr/src/build-gcc/./gcc/xgcc -B/usr/src/build-gcc/./gcc/   -B/usr/local/cross/i586-elf/bin/ -B/usr/local/cross/i586-elf/lib/ -isystem /usr/local/cross/i586-elf/include -isystem /usr/local/cross/i586-elf/sys-include 
checking for suffix of object files... configure: error: in `/usr/src/build-gcc/i586-elf/libgcc': 
configure: error: cannot compute suffix of object files: cannot compile 
See `config.log' for more details. 
make: *** [configure-target-libgcc] Error 1 

config.log में मैं

Target: i586-elf 
Configured with: ../gcc-4.8.0/configure --target=i586-elf --prefix=/usr/local/cross --  disable-nls --enable-languages=c,c++ --without-headers : (reconfigured) ../gcc-4.8.0/configure --target=i586-elf --prefix=/usr/local/cross --disable-nls --enable-languages=c,c++ --without-headers : (reconfigured) ../gcc-4.8.0/configure --target=i586-elf --prefix=/usr/local/cross --disable-nls --enable-languages=c,c++ --without-headers 
Thread model: single 
gcc version 4.8.0 (GCC) 
configure:3358: $? = 0 
configure:3347: /usr/src/build-gcc/./gcc/xgcc -B/usr/src/build-gcc/./gcc/ - B/usr/local/cross/i586-elf/bin/ -B/usr/local/cross/i586-elf/lib/ -isystem /usr/local/cross/i586-elf/include -isystem /usr/local/cross/i586-elf/sys-include -V >&5 
xgcc: error: unrecognized command line option '-V' 
xgcc: fatal error: no input files 

पाया तथ्य xgcc में 'वी' विकल्प नहीं है। मैं libgcc संकलित करने के तरीके को खोज रहा हूँ।

अग्रिम

+0

आम तौर पर 'libgcc' जीसीसी कंपाइलर का हिस्सा है इसलिए जीसीसी के साथ बनाया जाना चाहिए। इसे बनाने के लिए आपको विशेष कार्यों की आवश्यकता नहीं है। –

+2

वही त्रुटि यहाँ। जीसीसी संस्करण 4.8.1 (जीसीसी) – e19293001

उत्तर

10

यहाँ धन्यवाद समस्या है: इससे पहले कि आप के रूप में आप वर्णित libgcc बनाने की कोशिश की है, तो आप एक चरम नंगे हड्डियों पार संकलक का निर्माण किया। अब, कॉन्फ़िगर स्क्रिप्ट चलाने वाले मानक परीक्षणों का हिस्सा यह देखने के लिए कंपाइलर का परीक्षण करना है कि यह सामान्य परिस्थितियों में एक कार्य निष्पादन योग्य फ़ाइल का उत्पादन करेगा या नहीं। आपकी नंगे हड्डियों कंपाइलर नहीं कर सकते हैं। सौभाग्य से, libgcc के लिए, आपको निष्पादन योग्य, केवल एक स्थिर पुस्तकालय libgcc.a उत्पन्न करने की आवश्यकता नहीं है। समस्या यह है कि बेवकूफ जीएनयू autoconf-जनरेटेड स्क्रिप्ट को इसका एहसास नहीं है।

मुझे इस समस्या का सामना करना पड़ा और एक बहुत बदसूरत कामकाज तैयार किया। आपको अपनी जीसीसी स्रोत निर्देशिका में libgcc/कॉन्फ़िगर फ़ाइल के किसी अनुभाग को टिप्पणी करने की आवश्यकता है। यहां मेरे अनुभाग के लिए मैंने जिस अनुभाग पर टिप्पणी की है; आपके जैसे ही कुछ करना:

लाइन 3484 पर:

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 
$as_echo "$ac_file" >&6; } 
# BEGIN PHILLIP EDIT 
# if test -z "$ac_file"; then : 
    # $as_echo "$as_me: failed program was:" >&5 
# sed 's/^/| /' conftest.$ac_ext >&5 

# { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 
# $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 
# { as_fn_set_status 77 
# as_fn_error "C compiler cannot create executables 
# See \`config.log' for more details." "$LINENO" 5; }; } 
# fi 
ac_file='a.out' 
# END PHILLIP EDIT 
ac_exeext=$ac_cv_exeext 

आशा इस मदद करता है।

+0

मैंने जीसीसी के कई संस्करणों की कोशिश की, यह हमेशा वही है। आपका जवाब केवल एक ही है जो मेरी समस्या हल करता है। –

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