@sos1mple

Почему не собирается object(Nasm) файл в исполнительный?

Есть код написаный на NASM:
global start

    section .data
message: db "Hello, World", 10

    section .text
start:
    mov rax, 0x20000004
    mov rdi, 1
    mov rsi, message
    mov rdx, 13
    syscall
    mov rax, 0x20000001
    xor rdi, rdi
    syscall


Собираю его командой
nasm -f macho64 file.asm
Получившийся в результате файл file.o пытаюсь превратить в исполнительный с помощью
gcc file.o
На что выдается ошибка:
Undefined symbols for architecture x86_64:
  "_main", referenced from:
     implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64


Заранее спасибо за ответ!
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
firedragon
@firedragon
Senior .NET developer
Держите, но начинать на маке изучать асеемблер, как то круто
; /usr/local/bin/nasm -f macho64 64.asm && ld -macosx_version_min 10.7.0 -lSystem -o 64 64.o && ./64
https://gist.github.com/FiloSottile/7125822

Ну не знаю. Напишите makefile, у меня все собралось

5f9e1ee5df.jpg
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы