Linuxのクロスコンパイルについて教えて下さい。


arm CPU用にgdbをクロスコンパイルしようとし
gdb6.8をダウンロードして
./configure --target=arm-linux --build=i686-pc-linux-gnu --host=arm-linux
make
とした所、以下のエラーがでました。


configure: error: no termcap library found


以下の方法でtermcapを入れてみても同じエラーになり困っています。
何か分からないでしょうか。
エラーの詳細は http://d.hatena.ne.jp/garyo/20081121/p1 にあります

#wget http://ftp.yz.yamagata-u.ac.jp/pub/GNU/termcap/termcap-1.3.1.tar.gz
#tar -zxvf termcap-1.3.1.tar.gz
#cd termcap-1.3.1.tar.gz
#./configure
#make
#make install

回答の条件
  • URL必須
  • 1人5回まで
  • 登録:
  • 終了:2008/11/28 13:55:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:longicorn No.1

回答回数56ベストアンサー獲得回数6

ポイント60pt

zzz_1980さんがコメントで書いているように、termcapの方は./configureしているだけなのでホスト環境へインストールしているように見えます。

gdbの方で必要なのはターゲット用のtermcapです。


またライブラリのインストール先もクロス用のgccが読める場所にインストールしないといけません。

インストール先の指定は./configureに--prefixオプションを付けます。

詳しくは./configure --helpすればオプションの一覧が出てきます。

クロス環境の構築を行う場合慣れるまではデフォルトのインストール先ではなく、インストール先を指定すれば楽です。

こうすると指定ディレクトリ以下に環境が作られるので全体が見渡せます。

ただし、パスが通っていないのが欠点ですけど。


gdbserverではcore dumpは読めないとお聞きしたので、gdbをarm用にコンパイルしようとしています。

これはstubというのが関係してきます。

[このあたり]を参照してください。

これで分からなければ別に検索してください。


ところで本題から外れますが、ホストの方にtermcapがインストールされていたら既存の環境に上書きして最悪環境を壊しているかも。

blogの方をみるとRedHat系っぽいのですが、ご存知の通りRedHatはrpmで管理しているので念のために確認しておいた方がいいかと。

id:garyo

ありがとうございます。

結局cygwin上にインストールしたarm-linux-gdbだとターゲットにcoreが選択できるので、そちらでcoreファイルを読み込ませようと思います。

2008/11/25 00:25:57
  • id:zzz_1980
    この termcap は host のではなくターゲット、すなわち arm-linux 用にクロスコンパイルしたものが必要なのでは?
  • id:garyo
    zzz_1980さん、ありがとうございます。
    gdbserverではcore dumpは読めないとお聞きしたので、gdbをarm用にコンパイルしようとしています。

    >この termcap は host のではなくターゲット、すなわち arm-linux 用にクロスコンパイルしたものが必要なのでは?

    termcapのconfigureも以下のようにオプションを付ければよいのでしょうか?
    ./configure --target=arm-linux --build=i686-pc-linux-gnu --host=arm-linux
  • id:zzz_1980
    単純にはいかないと思う…作成したバイナリのおき場所がarm-linuxのクロスコンパイラのライブラリディレクトリにないとだめとか、
    include ファイルの置き場所も同じ。
  • id:garyo
    http://kegel.com/crosstool/
    上記のようなcross toolを使った方が良いでしょうか?

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません