- ベストアンサー
newlibのmakeでエラーが出る問題の解決方法
- gcc4.4.0、h8300-elfのビルドをしていますが、newlibのmakeでエラーが発生しています。
- h8300-elf-gccのコマンドが見つからないというエラーが表示されており、gccの再インストールなども試しましたが解決できません。
- エラーの原因として、パスの設定や環境変数の問題、依存関係の不足などが考えられます。詳細な環境設定の確認や依存ライブラリのインストールをおすすめします。
- みんなの回答 (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
その他の回答 (2)
- D-Matsu
- ベストアンサー率45% (1080/2394)
ああ、「-ccでなく-gccとなっているし-gccにはパスが通ってる」って意味ですか。 しかし、エラーを見る限りではmakeのときにツールチェインのパスが見えていないのはほぼ確実です。 PATHの設定はどこでどうやってますか?
補足
コマンドライン端末で export PATH=/usr/local/gcc-4.4.0_h8300-elf/bin/:$PATH としました。 echo $PATHで見ても追加されていました。 Linux自体もインストールしたばかりで使い始めて少しなので、これ以外のパスの通し方を知らなかったので他を試していませんが…
- D-Matsu
- ベストアンサー率45% (1080/2394)
> 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にはパスが通っているように見えるのですが… まだ他にパスを通す必要があるのでしょうか?
お礼
返事遅れてすみません。 わざわざビルドまでしていただきありがとうございました。 binutilsからやり直すと最後までいきました。 推測なんですが… パスを通さないでnewlibをmakeし、エラーが出ました。 その後パスを通してgccからやり直したのですが、もしかしたらこれがいけなかったのかもしれません。 最初からやり直すべきだったみたいです。