只有两个文件,main.c
和kernel.asm
,我尝试使用 NASM 和 GCC 与它们一起制作程序。内容如下:
主程序
#include <stdio.h>
void Print_String() {
printf("Hello World!\n");
}
内核文件
extern Print_String
[section .text]
global _start
_start:
call Print_String
编译和链接:
nasm -f elf -o kernel.o kernel.asm
gcc -c -o main.o main.c
ld -s -lc -o final kernel.o main.o
然后我final
用命令运行文件:./final
,但结果令人沮丧:
bash: ./final: No such file or directory
但是,当前目录确实有文件final
,对于命令ls
,它显示:
final kernel.asm kernel.o main.c main.o
那么为什么它找不到文件final
呢?有什么问题吗?任何帮助表示赞赏!