プロが教えるわが家の防犯対策術!

gcc4.4.0、h8300-elfのビルドをしています。
gccまではエラーが出てもなんとかできたのですが、newlibをmakeする段階で以下のエラーが出て解決方法がわかりません。

h8300-elf-gcc -B/home/user/build/gcc-4.4.0_h8300-elf/newlib-1.17.0/build/h8300-elf/newlib/ -isystem /home/user/build/gcc-4.4.0_h8300-elf/newlib-1.17.0/build/h8300-elf/newlib/targ-include -isystem /home/user/build/gcc-4.4.0_h8300-elf/newlib-1.17.0/newlib/libc/include -DPACKAGE_NAME=\"newlib\" -DPACKAGE_TARNAME=\"newlib\" -DPACKAGE_VERSION=\"1.17.0\" -DPACKAGE_STRING=\"newlib\ 1.17.0\" -DPACKAGE_BUGREPORT=\"\" -I. -I../../../../../newlib/libc/argz -O2 -DSMALL_DTOA -DSMALL_MEMORY -fno-builtin -g -O2 -c -o lib_a-dummy.o `test -f 'dummy.c' || echo '../../../../../newlib/libc/argz/'`dummy.c
/bin/bash: h8300-elf-gcc: command not found
make[5]: *** [lib_a-dummy.o] エラー 127

h8300-elf-gccのコマンドが見つかりませんと出ているようなのですが、
h8300-elf-ccではなくgccとなっていますし、gccにもパスが通っているのは確認できています。
gccからもう一度インストールし直したんですが、変わらず同じところでエラーが出てしまいどうしたらいいのか分かりません。
よろしくお願いします。

A 回答 (3件)

んー、普通ならそれでパス通るはずなんですが謎ですね……


疑問に思ったのでこちらでもビルドしてみました。

環境は
・Debian GNU/Linux 5.0(lenny) x86
・GCC 4.3.2

使ったパッケージは
・binutils 2.19
・GCC 4.4.0
・newlib 1.17.0
です。

結論を言うと、こちらの環境ではGCCのmakeが完走しなかったので状況が再現できませんでした。
ですが、↓を参考にしてGCCとnewlibを一緒にmakeすることでnewlibともどもmakeできました。
http://www.embedded.jp/article/cross-5.html
    • good
    • 0
この回答へのお礼

返事遅れてすみません。

わざわざビルドまでしていただきありがとうございました。

binutilsからやり直すと最後までいきました。
推測なんですが…
パスを通さないでnewlibをmakeし、エラーが出ました。
その後パスを通してgccからやり直したのですが、もしかしたらこれがいけなかったのかもしれません。
最初からやり直すべきだったみたいです。

お礼日時:2009/06/21 09:12

ああ、「-ccでなく-gccとなっているし-gccにはパスが通ってる」って意味ですか。



しかし、エラーを見る限りではmakeのときにツールチェインのパスが見えていないのはほぼ確実です。
PATHの設定はどこでどうやってますか?

この回答への補足

コマンドライン端末で
export PATH=/usr/local/gcc-4.4.0_h8300-elf/bin/:$PATH
としました。
echo $PATHで見ても追加されていました。

Linux自体もインストールしたばかりで使い始めて少しなので、これ以外のパスの通し方を知らなかったので他を試していませんが…

補足日時:2009/06/20 13:52
    • good
    • 0

> h8300-elf-gcc -B/home/user/build/gcc-4.4.0_h8300-elf/newlib-1.17.0/build/h8300-elf/newlib/(以下略)



となっていて明らかにh8300-elf-gccでコンパイルしようとしているので、

> h8300-elf-ccではなくgccとなっていますし

の意味がわかりません。
この状況からは作成したh8300向けツールチェインにパスを通せ、としか言いようがないんですが……

この回答への補足

回答ありがとうございます。
以前
h8300-elf-cc: command not found
となったことがありました。調べてみるとパスが通っていないく、
h8300-elf-gccとなればコンパイルできるとのことでした。
h8300-elf-gcc -v
とすると

Using built-in specs.
Target: h8300-elf
コンフィグオプション: ../configure --target=h8300-elf --prefix=/usr/local/gcc-4.4.0_h8300-elf/ --enable-languages=c --with-newlib --with-headers=/home/user/build/gcc-4.4.0_h8300-elf/newlib-1.17.0/newlib/libc/include/ --with-gmp=/usr/local/gmp/4.3.0 --with-mpfr=/usr/local/mpfr/2.4.1 : (reconfigured) ../configure --target=h8300-elf --prefix=/usr/local/gcc-4.4.0_h8300-elf/ --enable-languages=c --with-newlib --with-headers=/home/user/build/gcc-4.4.0_h8300-elf/newlib-1.17.0/newlib/libc/include/ --with-gmp=/usr/local/gmp/4.3.0 --with-mpfr=/usr/local/mpfr/2.4.1
スレッドモデル: single
gcc version 4.4.0 (GCC)

となりh8300-elf-gccにはパスが通っているように見えるのですが…
まだ他にパスを通す必要があるのでしょうか?

補足日時:2009/06/20 12:14
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!