NASM + GoLink:"The following symbol was not defined in the object file or files"
NASM + GoLink: "The following symbol was not defined in the object file or files"
我是汇编语言的新手。我在 Windows 10 上安装了 NASM 和 GoLink,并将它们的文件夹路径放入高级 PC 属性选项卡中的环境变量中。这个程序有一个简单的 asm 文件:
global _start
_start:
mov eax, 1
mov ebx, 42
int 0x80
I 运行 从文件夹中输入命令提示符并输入以下命令:
nasm -f win32 test.asm -o test.obj
在同一个文件夹中成功创建obj文件。然后我输入这个命令:
golink /entry:_start /console kernel32.dll user32.dll test.obj
我收到以下错误:
Error!
The following symbol was not defined in the object file or files:-
_start
You may be trying to link object files or lib code with decorated symbols -
If so, you could try using the /mix switch
Output file not made
我读到 /entry
将“_”附加到入口点的名称,但即使没有下划线,我也会得到同样的错误。
我该如何解决这个问题?
正如评论员所提到的,在 Windows 10 中编译时需要 section .text
。另外,我使用了 int 0x80
,这是在 Linux 系统上使用的系统调用,因此程序无论如何都行不通。
我是汇编语言的新手。我在 Windows 10 上安装了 NASM 和 GoLink,并将它们的文件夹路径放入高级 PC 属性选项卡中的环境变量中。这个程序有一个简单的 asm 文件:
global _start
_start:
mov eax, 1
mov ebx, 42
int 0x80
I 运行 从文件夹中输入命令提示符并输入以下命令:
nasm -f win32 test.asm -o test.obj
在同一个文件夹中成功创建obj文件。然后我输入这个命令:
golink /entry:_start /console kernel32.dll user32.dll test.obj
我收到以下错误:
Error!
The following symbol was not defined in the object file or files:-
_start
You may be trying to link object files or lib code with decorated symbols -
If so, you could try using the /mix switch
Output file not made
我读到 /entry
将“_”附加到入口点的名称,但即使没有下划线,我也会得到同样的错误。
我该如何解决这个问题?
正如评论员所提到的,在 Windows 10 中编译时需要 section .text
。另外,我使用了 int 0x80
,这是在 Linux 系统上使用的系统调用,因此程序无论如何都行不通。