我是使用 ebe 编辑器组装和使用 yasm 的新手。
现在,在第一步之后,我想检查全局/外部机制。
因此我做了2个模块:
演员.asm
extern greeter
section .text
global main
main:
push rbp
call greeter wrt ..plt
pop rbp
mov rax,0
ret
迎宾员.asm
extern printf
section .data
msg: db "Hello world", 0
fmt: db "%s", 10, 0
section .text
global greeter
type greeter function
size greeter greeter.end -greeter
greeter:
push rbp
mov rdi,fmt
mov rsi,msg
mov rax,0
call printf
pop rbp
mov rax,0
ret
.end:
这两个文件都已编译,当我运行第一个文件时,会出现以下错误消息:
/home/1/Öffentlich/EBE_Space/ext_glob_test/actor.o:在函数
main': /home/1/Öffentlich/EBE_Space/ext_glob_test/actor.asm:6: undefined reference to
greeter'
怎么了?使全局函数可链接的必要条件是什么?
TIA