2013-04-18 31 views
5

私はクロスコンパイラthis tutorialをインストールしようとしています。私がlibgccを作成したいときは、私はmake all-target-libgcc を自分の端末に入れています。このメイクは、私が実際のxgccでCompilng libgcc xgccエラー

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 

を発見したエラーconfig.logの中

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 

を投げるには、 '-V' オプションを持っていません。私はlibgccをコンパイルする方法を探しています。事前

+0

通常、 'libgcc'はGCCコンパイラの一部ですので、GCCでビルドする必要があります。それを構築するために特別なアクションは必要ありません。 –

+2

ここで同じエラーが発生します。 gcc version 4.8.1(GCC) – e19293001

答えて

10

おかげで、ここで問題です:あなたが説明するように、あなたがlibgccを構築しようとする前に、あなたは極端な最低限のクロスコンパイラを構築しました。ここで、configureスクリプトが実行する標準テストの一部は、コンパイラが通常の条件下で動作可能な実行可能ファイルを生成するかどうかをテストすることです。あなたの裸の骨のコンパイラはできません。幸いにも、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のいくつかのバージョンを試しました、それは常に同じです。あなたの答えは私の問題を解決する唯一のものと思われます。 –

関連する問題