Windows 如何在Win10中使用link.exe从NASM链接obj文件
我在NASM中有以下代码:Windows 如何在Win10中使用link.exe从NASM链接obj文件,windows,assembly,nasm,Windows,Assembly,Nasm,我在NASM中有以下代码: ;sleep.asm [SECTION .text] global _start _start: xor eax,eax mov ebx, 0x00016630 ;address of Sleep mov ax, 5000 ;pause for 5000ms push eax call ebx ;Sleep(ms); 其中0x0001630是休眠函数的地址(取自kernel32.dll中的du
;sleep.asm
[SECTION .text]
global _start
_start:
xor eax,eax
mov ebx, 0x00016630 ;address of Sleep
mov ax, 5000 ;pause for 5000ms
push eax
call ebx ;Sleep(ms);
其中0x0001630是休眠函数的地址(取自kernel32.dll中的dumpbin)
我想让可执行文件在Win10中运行。我所做的是:
nasm -f win32 sleep.asm
结果是sleep.obj
所以现在我必须把它联系起来。我使用以下命令选择link.exe
link sleep.obj /entry:_start /subsystem:windows /nodefaultlib
Microsoft (R) Incremental Linker Version 14.00.24215.1
Copyright (C) Microsoft Corporation. All rights reserved.
LINK : error LNK2001: unresolved external symbol __start
sleep.exe : fatal error LNK1120: 1 unresolved externals
有人能帮你解决这个问题吗?链接器会自动为你在命令行中通过
/entry
传递的任何内容预加下划线。请尝试以下方法:
link sleep.obj /entry:start /subsystem:windows /nodefaultlib
如果您使用
/entry:start
,可能会重复什么?谢谢大家,这是解决方案(下划线的东西)。如果解决了您的问题,请随意接受答案。;)