簡體   English   中英

為什么我無法在我的 linux 上運行程序(qemu 模擬 arm32,並啟動 linux 操作系統)

[英]why i can not run program on my linux(qemu simulate arm32,and start a linux os)

【1】,我有一個linux os環境,基於arm32(qemu similute)。

【2】、/目錄下有兩個文件。 一個是“init”,一個是“nesoft”,但我只能運行“init”,不能運行“nesoft”:

/#./init 這是initramfs-init!!!

/#./nesoft -/bin/sh: ./nesoft: 未找到

【3】,這兩個文件有以下區別:zhang@zhang-Virtual-Machine:~/src/qemu/third_patry/rootfs/busybox/rootfs$ file init init: ELF 32-bit LSB executable, ARM, EABI5 version 1 ( SYSV), 靜態鏈接, 對於 GNU/Linux 3.2.0, BuildID[sha1]=08c7f187d91207660caa2db0101980a1f4b12716, notd

zhang@zhang-Virtual-Machine:~/src/qemu/third_patry/rootfs/busybox/rootfs$ 文件 nesoft nesoft: ELF 32-bit LSB shared object, ARM, EABI5 版本/GNU/Linux, 動態鏈接解釋器/GNU/Linux lib/ld-linux.so.3,對於 GNU/Linux 4.4.0,剝離

【4】,我有搜索,所以我認為“LSB 共享對象”應該作為可執行文件運行(我從https://unix.stackexchange.com/questions/472449/what-is-the-difference-between-lsb學習-executable-et-exec-and-lsb-shared-object )但是,為什么它仍然無法運行?

【END】 有沒有人遇到過這種情況,知道為什么嗎?

我看到第二個文件的主要區別是動態鏈接的,這意味着它需要庫.so文件才能執行。 我想它只是無法加載依賴項。

嘗試運行ldd (或在運行二進制文件之前export LD_TRACE_LOADED_OBJECTS=1 ,因為ldd可能不在busybox上)以查看缺少哪個庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM