Ошибка при компиляции кода ассемблера NASM
Написал простенькую программу на ассемблере NASM:
global _start ; делаем метку метку _start видимой извне
section .text ; объявление секции кода
_start: ; метка _start - точка входа в программу
mov rax, 40 ; произвольный код возврата - 40
ret ; выход из программы
Далее создал объектный файл путем написания команды:
nasm -f win64 hello.asm -o hello.o
А затем, открыв под приложение Native Tools Command Prompt for VS 2022
, записал следующую команду для создание исполняемого файла:
link hello.o /entry:_start /subsystem:console /out:hello2.exe
И получил ошибку:
Microsoft (R) Incremental Linker Version 14.42.34321.1
Copyright (C) Microsoft Corporation. All rights reserved.
LINK : error LNK2001: неразрешенный внешний символ _start.
hello2.exe : fatal error LNK1120: неразрешенных внешних элементов: 1
Как ее исправить?
Ответы (1 шт):
Автор решения: Chaos_Sower
→ Ссылка
Перевод ответа пользователя @K.R. на вопрос LNK 2001 unresolved external symbol _mainCRTStartup MASM:
Другие ответы меня смутили, поэтому я добавлю своё решение. В свойствах проекта перейдите в:
Свойства конфигурации >> Компоновщик >> Дополнительно
В Дополнительно вверху должна быть Точка Входа. Введите туда main
.