неопределенная ссылка на `выход 'Linux Asm с использованием ld - PullRequest
0 голосов
/ 15 ноября 2018

Вот мой код asm:

global _start

extern exit

section .text
_start:
  mov ebx, 10
  call exit 

команда компиляции:

nasm -f elf32 hello.asm

команда ссылки:

ld -m elf_i386 -L /lib/ld-linux.so.2 hello.o

но это дает мне следующий вывод:

hello.o: в функции _start': hello.asm:(.text+0x6): undefined reference to выход '

Я пробовал также:

ld -m elf_i386 -L /lib/x86_64-linux-gnu/libc.so.6 hello.o

Когда я использую gcc, его свойство compile, но я бы хотел использовать ld напрямую.

Обновление

  global _start

  extern _exit

  section .text
  _start:
    mov ebx, 10
    call _exit    

Команда:

 nasm -f elf32 hello.asm 
 ld -m elf_i386 -lc -o hello.out hello.o

Он хорошо связывается, но когда я хочу запустить бинарный файл, например: ./hello.out Я получаю сообщение об ошибке:

bash: ./hello.out : No such file or directory.

Когда я использую gcc, я не могу запустить двоичный файл таким же образом, но он работает правильно.

...