14

qemu、qemu-user、および gnueabi ツールチェーンがインストールされた Linux Mint 14 を実行しています。でtest.cをコンパイルしましarm-linux-gnueabi-gcc test.c -o testた。

走ってみるとqemu-arm /usr/arm-linux-gnueabi/lib/ld-linux.so.3 test

次のエラーが表示されますtest: error while loading shared libraries: test: cannot open shared object file: No such file or directoryqemu-arm test以前に試したように、実行すると、/lib/ld-linux.so.3: No such file or directory

ただし、ファイルは存在し、到達可能です。

$ stat /usr/arm-linux-gnueabi/lib/ld-linux.so.3
  File: `/usr/arm-linux-gnueabi/lib/ld-linux.so.3' -> `ld-2.15.so'
  Size: 10          Blocks: 0          IO Block: 4096   symbolic link
Device: 801h/2049d  Inode: 4083308     Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2013-04-22 16:19:48.090613901 -0700
Modify: 2012-09-21 08:31:29.000000000 -0700
Change: 2013-04-22 15:58:41.042542851 -0700
 Birth: -

arm Linuxカーネル全体をエミュレートすることなく、qemuにarmプログラムを実行させる方法を知っている人はいますか?

test.c は

#include <stdio.h>
int main() {
    printf("this had better work\n");
}

そしてfile test_

test: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.31, BuildID[sha1]=0xf2e49db65394b77c77ee5b65b83c0cc9220cbfc0, not stripped
4

6 に答える 6

31

-L フラグを使用して arm-linux-gnueabi 共有ライブラリへのパスを指定することで、サンプルを実行できます。

qemu-arm -L /usr/arm-linux-gnueabi/

また、LD_LIBRARY_PATH が設定されていないことを確認してください。

unset LD_LIBRARY_PATH
于 2013-06-20T05:57:10.433 に答える
13
$ export QEMU_LD_PREFIX=/usr/arm-linux-gnueabi

これは私にとってはうまくいきます。基本的には次と同じです。

$ qemu-arm -L /usr/arm-linux-gnueabi/

~/.bashrc ファイルに追加できるので、ターミナルを開くたびに入力する必要はありません。

于 2016-04-08T13:20:54.810 に答える
12

アセンブリ コードで C プログラムを実行したときにも、この問題に遭遇しました。私の解決策は、たとえば、オプション「-static」を使用して実行可能ファイルをビルドすることです

arm-linux-gnueabi-gcc -static -g main.c square.s

それで

qemu-arm a.out

「/lib/ld-linux.so.3 が見つかりません」というエラーは報告されません。

唯一の欠点は、実行可能ファイルのサイズが大きくなる可能性があることです。ただし、コードをテストしたいだけの場合に役立ちます。

もちろん、Balau の方法を使用できます (artless noise's answer を参照)。しかし、このステップの「UART シリアル ポート」のような単純な「テスト」機能を実行するためだけのものに苛立ちを感じたくない場合は、私の修正を試してみてください。

于 2013-10-14T16:07:06.307 に答える