2012-02-04 23 views
12

問題のgcc 4.6.2をコンパイル:コンパイルはgcc 4.6.2(オブジェクトファイルのサフィックスを計算することはできません)

checking for avr-gcc... /data/data6/soft/src_build/gcc-4.6.2/host-x86_64-unknown-linux-gnu/gcc/xgcc -B/data/data6/soft/src_build/gcc-4.6.2/host-x86_64-unknown-linux-gnu/gcc/ -B/data/data6/soft/programming/gcc-avr/avr/bin/ -B/data/data6/soft/programming/gcc-avr/avr/lib/ -isystem /data/data6/soft/programming/gcc-avr/avr/include -isystem /data/data6/soft/programming/gcc-avr/avr/sys-include 
checking for suffix of object files... configure: error: in `/data/data6/soft/src_build/gcc-4.6.2/avr/libgcc': 
configure: error: cannot compute suffix of object files: cannot compile 
See `config.log' for more details. 

私のgcc-4.6.2で/ AVR/libgccの/ config.logの私が見つけた:

configure:3268: /data/data6/soft/src_build/gcc-4.6.2/host-x86_64-unknown-linux-gnu/gcc/xgcc -B/data/data6/soft/src_build/gcc-4.6.2/host-x86_64-unknown-linux-gnu/gcc/ -B/data/data6/soft/programming/gcc-avr/avr/bin/ -B/data/data6/soft/programming/gcc-avr/avr/lib/ -isystem /data/data6/soft/programming/gcc-avr/avr/include -isystem /data/data6/soft/programming/gcc-avr/avr/sys-include -c -g -O2 conftest.c >&5 
exec: 89: -o: not found 
configure:3272: $? = 1 
configure: failed program was: 
| /* confdefs.h */ 
| #define PACKAGE_NAME "GNU C Runtime Library" 
| #define PACKAGE_TARNAME "libgcc" 
| #define PACKAGE_VERSION "1.0" 
| #define PACKAGE_STRING "GNU C Runtime Library 1.0" 
| #define PACKAGE_BUGREPORT "" 
| /* end confdefs.h. */ 
| 
| int 
| main() 
| { 
| 
| ; 
| return 0; 
| } 
configure:3286: error: in `/data/data6/soft/src_build/gcc-4.6.2/avr/libgcc': 
configure:3289: error: cannot compute suffix of object files: cannot compile 
See `config.log' for more details. 

このコマンドを(conftest.cの作成後に)直接実行すると、出力は同じになります。

exec:89:-o:not foundとは何ですか?どのプログラムがそれを書いていますか? 89行はどこですか?

LD_CONFIG_PATHのエクスポートや、GMP、MPFR、MPCへのパスを含む/etc/ld.so.conf内の行の追加などの解決策は、私のためには機能しません。

この問題の解決策はどこですか? 設定上問題があるようです。 GCCには非常に良いオプション-v :-)があります。そして、それはgccからのアセンブラ呼び出しです。これは失敗します。オプション-save-tempsでアセンブラソースを保存し、アセンブラを実行しますが、それは問題ではありません。

代わりの実際のアセンブラを呼び出してから開始する、とそれは/私の場合/データ/ DATA6 /ソフト/ src_build/AVR-GCC/gccのでは、シェルスクリプトラッパーを呼び出します。

ORIGINAL_AS_FOR_TARGET="" 
ORIGINAL_LD_FOR_TARGET="" 
ORIGINAL_PLUGIN_LD_FOR_TARGET="" 
ORIGINAL_NM_FOR_TARGET="" 

そして、それ前述のように失敗した場合、次のようになります。

必要なのはどこですか? exec -o conftest.o conftest.s

ここで変数ORIGINAL_AS_FOR_TARGETを設定するといいですか?

+0

'..../configure'の正確な引数は何ですか? 'CC'変数を渡しましたか?あなたはCコンパイラを持っていますか? Whch one?実行可能なのはどれですか?それはあなたの 'PATH'にありますか?あなたのホストオペレーティングシステムは何ですか?ソースツリーの外側にgccを構築していますか?あなたのGCCソースツリーとビルドツリーは何ですか? *慎重に* http://gcc.gnu.org/install/を読んだか? –

+0

Basile、返信ありがとう。最後のubuntu、ビルドツリーは外側、コンパイラ - gnu gcc 4.6.1 x86_64、target - avr。/data/data6/soft/src_build/avr-gcc - ビルドツリー、/data/data6/soft/src_build/gcc-4.6.2 - ソースツリーです。 –

+1

DebianまたはUbuntuの場合:最初に 'aptitude build-dep gcc-avr binutils-avr;を実行してください。 aptitude install gcc-avr binutils-avr' –

答えて

3

私は同じ問題をmipsにクロスコンパイルしました。

ステップ1:ターゲットのbinutilsをクロスコンパイルします。それらをどこかにインストールしてください。その後

configure --prefix=/usr/local/avr-gcc --program-prefix=avr- --target=avr 

サムシング(未テスト)のような - 私はあなたが--programプレフィックス= [対象]を使用してこれらを設定していることを確認してください

-gccは/ usr/local/[対象]を使用します

export AR_FOR_TARGET=/usr/local/avr-gcc/bin/avr-ar 
export LD_FOR_TARGET=/usr/local/avr-gcc/bin/avr-ld 
export OBJDUMP_FOR_TARGET=/usr/local/avr-gcc/bin/avr-objdump 
export NM_FOR_TARGET=/usr/local/avr-gcc/bin/avr-nm 
export RANLIB_FOR_TARGET=/usr/local/avr-gcc/bin/avr-ranlib 
export READELF_FOR_TARGET=/usr/local/avr-gcc/bin/avr-readelf 
export STRIP_FOR_TARGET=/usr/local/avr-gcc/bin/avr-strip 
export AS_FOR_TARGET=/usr/local/avr-gcc/bin/avr-as 

GCCを設定してコンパイルできるようになりました。完全に空のビルドディレクトリから開始してください。さもなければ、gcc/asなどは再作成されません。

2

「*ビルGCCは簡単ではありませんが、あなたは慎重に指示に従った場合には難しいことではありません 多くの人々が正しくインストールドキュメントを読まずにそれを構築し、これらのよくある間違いの1以上をしようと突入:。

1)実行しないでください。/ configure from gcc src dir(これはサポートされていません)=> gccソースディレクトリの外からconfigureを実行する必要があります

2)注意:GCCが前提条件のlibs(GMP/MPFR/MPC)共有ライブラリは、ダイナミックリンカのパス(LD_LIBRARY_PATH)でなければなりません、両方のインストールコンパイラを使用する場合、GCCを構築したとき*」

簡単な例を(GMP/MPFR/MPCにダイナミックリンクなし):。

tar xzf gcc-4.8.0.tar.gz 
cd gcc-4.8.0 
./contrib/download_prerequisites 
cd .. 
mkdir objdir 
cd objdir 
$PWD/../gcc-4.8.0/configure --prefix=/opt/gcc-4.8.0 
make 
make install 

ソース: Advogato Doc - GNU Doc

関連する問題