运行 riscv/Linux 上的一个程序(秒杀)
Running a program on riscv/Linux (spike)
我 运行正在 Linux 上 spike,如 http://riscv.org/download.html#tab_linux 所述。有了 busybox,我有了一个强大的工具 运行 几个有用的工具。接下来我要实现的目标是 运行 我自己的程序 riscv/Linux。因此我写了一个小程序:
#include <stdio.h>
int main(void) {
printf("Hello world!\n");
return 0; }
使用 riscv64-unknown-linux-gnu-gcc 编译它并将二进制文件添加到 riscv/Linux 的 root.img。我现在遇到的问题是,如果我想在 riscv/Linux through ./hello 下执行程序,我的 shell 上会出现以下消息:
-/bin/ash: ./hello: not found
我现在的问题是 (1) 我做错了什么以及 (2) 是否有可能 运行 一个程序 riscv/Linux 我试图完成它的方式?
我的猜测是您的 hello 程序动态链接到根文件系统中缺少的运行时库。
您可以使用 'ldd' 来查找您的应用程序链接了哪些动态库,并确保所有动态库都存在于根文件系统中,或者简单地静态编译 hello 程序。
我 运行正在 Linux 上 spike,如 http://riscv.org/download.html#tab_linux 所述。有了 busybox,我有了一个强大的工具 运行 几个有用的工具。接下来我要实现的目标是 运行 我自己的程序 riscv/Linux。因此我写了一个小程序:
#include <stdio.h>
int main(void) {
printf("Hello world!\n");
return 0; }
使用 riscv64-unknown-linux-gnu-gcc 编译它并将二进制文件添加到 riscv/Linux 的 root.img。我现在遇到的问题是,如果我想在 riscv/Linux through ./hello 下执行程序,我的 shell 上会出现以下消息:
-/bin/ash: ./hello: not found
我现在的问题是 (1) 我做错了什么以及 (2) 是否有可能 运行 一个程序 riscv/Linux 我试图完成它的方式?
我的猜测是您的 hello 程序动态链接到根文件系统中缺少的运行时库。
您可以使用 'ldd' 来查找您的应用程序链接了哪些动态库,并确保所有动态库都存在于根文件系统中,或者简单地静态编译 hello 程序。