1

我是使用 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 togreeter'

怎么了?使全局函数可链接的必要条件是什么?

TIA

4

0 回答 0