YASM, почему глобальные внешние ссылки не работают

Я новичок в сборке и использую y asm, с редактором ebe.

Теперь после первых шагов я хочу проверить глобальный / внешний механизм.

Поэтому я сделал 2 модуля:

actor.asm

    extern greeter 

    section .text  
    global main   

        main:             
        push    rbp  

        call    greeter wrt ..plt  

        pop rbp     
        mov rax,0       
        ret 

greeter.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привратник"

В чем дело? Что необходимо, чтобы сделать глобальную функцию связываемой?

ТИА

0 ответов

Другие вопросы по тегам