【问题标题】:"fatal error LNK1561: entry point must be defined" error from MASM32 in very simple program非常简单的程序中来自 MASM32 的“致命错误 LNK1561:必须定义入口点”错误
【发布时间】:2012-10-03 21:29:39
【问题描述】:

固定;这是固定代码(不做任何事情并崩溃,但它会组装,这就是重点):

.686P
.MODEL FLAT
.CODE
_START:
    MOV al, 255
END _START

我还发现我必须将 /c 开关与 ml 一起使用,然后单独与 /SUBSYSTEM:CONSOLE 链接。


刚刚重新发现了 x86 程序集和 MASM32,并且让自己重新熟悉了基础知识。因此,我编写了一个简短而毫无意义的程序,看看我是否可以组装任何东西:

.686P
.MODEL FLAT
.CODE
START:
    MOV al, 255
END

我跑了ml /coff test.asm,得到了这个输出:

Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997.  All rights reserved.

 Assembling: test.asm
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

"test.obj"
"/OUT:test.exe"
LINK : fatal error LNK1561: entry point must be defined

我在网上看到 START 是入口点的名称。我做错了还是这是另一个问题?

提前致谢!

【问题讨论】:

    标签: windows assembly x86 masm32 coff


    【解决方案1】:

    该 END 指令用于设置入口点: http://msdn.microsoft.com/en-us/library/wxy1fb5k(v=vs.80).aspx

    所以 END 应该是 END START。入口点标签可以是任何有效的标签名称。

    【讨论】:

      【解决方案2】:

      我没有 MASM,但通常入口点是 _start:,而不是 START:

      this MASM example program

      【讨论】:

      • 谢谢!我做了一些更多的研究,除了正确的(_START 也有效),我忘了用END _START 结束程序。它现在组装起来了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-08
      • 1970-01-01
      • 2018-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多