如何将C程序与init文件集成?

如何将C程序与init文件集成?

所以我正在努力使用 busybox 构建最小的操作系统。我想要的是我想从 BIOS 运行我的 .net 程序。但我不确定linux是否会运行.net程序,所以为了清除我的路径,我使用C程序而不是.net程序。我正在成功生成 initrd.img 文件。现在在生成 initrd.img 文件之前。我想整合我的你好ç带有初始化文件的程序。

这个命令我用来读取文件并且成功读取C程序代码。echo 'cat /etc/hello.c' >> init

现在我想执行这个你好ç。所以我尝试执行以下命令,但它不能按cat命令工作。

echo 'gcc -o echo /etc/hello.c' >> init
echo 'chmod +x echo' >> init
echo './echo' >> init

这是我收到的错误:

/init: line 6: gcc: not found
chmod: echo: No such file or directory
/init: line 8: ./echo: not found

答案1

gcc您的脚本失败是因为您的 initrd 中没有该脚本。

你不应该hello.c在你的 initrd 中发布;你应该构建程序并发布而是在你的 initrd 中。当尝试运行程序时,您还应该指定程序的完整路径。

相关内容