错误:在函数' _go':c.asm :(。text + 0x6):未定义对`k_main'的引用
汇编:
asm \ nasm -f elf -o c.o c.asm
bin \ ld -oformatbinary -Ttext 0x200000 -o bin \ kernel.bin co bin \ video.o bin \ inter.o bin \ finter.o bin \ kernel.o -I" C:\ MinGW \ include&#34 ; -L" C:\ MinGW \ lib"
c.asm:
section .text
global _go
extern k_main
_go:
mov esp, 0x200000-4`
call k_main
kernel.c
void k_main(){
//iint();
//initial();
for(;;);
}
请帮忙
答案 0 :(得分:2)
标识符的实际编码由object-format / platform / compiler定义,在这种情况下,C函数得到一个下划线前缀,因此符号实际上是_k_main
。
如果您希望它是可移植的,您可以使用宏进行编码,或者您可以在C源代码中强制使用该符号。