You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复MASM x86中出现的未解析外部符号错误?

解决汇编代码的LNK2001/LNK1120链接错误

你的代码里mov和add操作本身没问题,报错是因为链接器找不到ExitProcess@4的实现——这个函数属于Windows系统的kernel32.dll,你只声明了函数原型,但没告诉链接器要链接对应的库文件。

解决方法有两种:

方法1:在代码中添加库引用

在ExitProcess PROTO那一行之后,加上includelib kernel32.lib,让汇编器告知链接器需要链接kernel32库。修改后的代码如下:

.386
.model flat, stdcall
.stack 4096
ExitProcess PROTO, dwExitCode:DWORD
includelib kernel32.lib  ; 添加这一行
.code 
main PROC 
    mov eax, 5
    add eax, 6

    INVOKE ExitProcess,0
main ENDP
end main

方法2:编译链接时指定库文件

如果用命令行工具(比如MASM的ml.exe和link.exe),在链接步骤加上kernel32.lib参数,示例命令:

ml /c /coff yourfile.asm
link yourfile.obj kernel32.lib /subsystem:console

这样链接器就能找到ExitProcess的实现,解决未解析外部符号的问题。

内容的提问来源于stack exchange,提问作者Rediet Workneh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 07:25:21