
Ubuntu日本語フォーラム
ログインしていません。
クロス環境でC++の開発を行っており、ホストPCでクロスコンパイルした実行ファイルがPandaBoard上で動作しない問題が発生しております。
プログラム名をhelloとした際に
PandaBoard上で「ls -al」とするとhelloが表示されファイルが存在することが確認できるのですが
実際に動作させようとして「./ hello」としたときにNo such file or directoryと表示されます。
原因や動作させる方法など、ご教授いただければありがたく思います。
環境は以下の通りです。
開発環境(x86)
Ubuntu12.04
Eclipse
Sourcery CodeBench arm-gnu-linux
環境構築はhttp://denizbeker.blogspot.jp/2013/08/cross-compile-for-pandaboard-es-by.html を参考にしました。
動作環境
PandaBoardES(RevB3)
Ubuntu12.04
なおPandaBoard上でビルドすると期待通りの動作をします(PandaBoard上ではCのプログラムをビルド)。
オフライン
PandaboardってARMがCPUなんじゃないですか?
だとするとx86のバイナリは動きません。
オフライン
fatcat による投稿:
PandaBoard上で「ls -al」とするとhelloが表示されファイルが存在することが確認できるのですが
実際に動作させようとして「./ hello」としたときにNo such file or directoryと表示されます。
bashはARCH違いのプログラムを走らせようとしたときにNo such file or directoryを吐きます。
zshのようにbad interpreter的なことを言ってくれればいいのですが、残念ながらそういう仕様。
・とりあえず原因がARCH違いであることを確認するために、file hello して実行バイナリの種別を確認する
・クロスコンパイルしているハズなのに異なるバイナリができている原因を確認する
という順番で追い詰めるのが正しそうです。
オフライン
arrayさん、hitoさんありがとうございます。
ARM用バイナリであることはfileコマンドでARM用であることは確認しました。
そのため、hitoさんがおっしゃっているように「クロスコンパイルしているハズなのに異なるバイナリができている原因を確認する」の可能性を追究していきます。
オフライン