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

VS2017中使用NASM编译遇LNK1561错误:需定义入口点

解决VS+NASM的LNK1561入口点错误

嗨,这个问题我之前也踩过坑,很容易搞定!LNK1561错误本质是链接器找不到程序的起始执行入口,咱们分两步来解决:

1. 补全汇编代码的入口点标记

你的代码目前只有.data(数据段)和.bss(未初始化数据段),缺少关键的.text(代码段)和入口点标签。纯汇编程序在Windows下配合VS链接时,通常用_start作为入口点,你需要把代码补全成这样:

section .data
msg db "CAT test program. Press Esc to exit."
msglen equ $-msg

section .bss
char resb 1

section .text
global _start  ; 把_start声明为全局符号,让链接器能识别到它

_start:
    ; 这里写你的核心程序逻辑,比如打印提示信息、读取键盘输入等
    ; 记得在逻辑末尾加上退出程序的代码(比如调用Windows的ExitProcess API),避免运行崩溃

2. 在VS中配置链接器的入口点

光有代码里的_start还不够,得明确告诉VS链接器用这个标签作为入口:

  • 右键你的项目 → 选择「属性」
  • 左侧导航栏找到「链接器」→ 「高级」
  • 在右侧的「入口点」输入框里,填写_start(注意前面的下划线不能丢)
  • 点击「确定」保存设置,重新编译链接就可以了

额外说明

如果你的程序是和C语言代码混合编写的,入口点可以设为main,但纯汇编程序用_start是最标准的做法。另外,一定要确保_start标签下有实际的执行逻辑,不然程序运行后可能会出现异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:08:27