2013-04-18 40 views
5

我試圖安裝交叉編譯器this tutorial,並且當我想使libgcc在我的終端中放置make all-target-libgcc 。本作將引發錯誤Compilng libgcc xgcc error

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沒有 '-V' 選項。我正在尋找如何編譯libgcc的方式。

在此先感謝

+0

通常'libgcc'是GCC編譯器的一部分,所以應該使用GCC編譯。你不需要特殊的行動來建立它。 – 2013-04-18 08:08:32

+2

此處同樣的錯誤。 gcc版本4.8.1(GCC) – e19293001 2013-08-02 05:29:35

回答

10

這裏的問題:在你試圖像你描述的建立libgcc,您構建了一個極端的裸機交叉編譯器。現在,配置腳本運行的一部分標準測試是測試編譯器,看它是否會在正常情況下生成可用的可執行文件。你的裸骨頭編譯器不能。幸運的是,對於libgcc,您不需要生成可執行文件,只需要一個靜態庫libgcc.a。問題在於愚蠢的GNU autoconf生成的腳本沒有意識到這一點。

我遇到了同樣的問題,並設計了一個非常醜陋的解決方法。您需要註釋掉gcc源代碼目錄中libgcc/configure文件的一部分。以下是我爲我的版本註釋的部分;做同樣的事情對你的:

在行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

我嘗試了幾個版本的GCC,它總是一樣的。你的答案似乎是唯一解決我的問題的答案。 – 2016-12-23 10:34:42

相關問題