« erreur fatale LNK1561 :le point d'entrée doit être défini" erreur de MASM32 dans un programme très simple
Question
Fixé;voici le code corrigé (ne fait rien et plante, mais il s'assemble, c'est le but) :
.686P
.MODEL FLAT
.CODE
_START:
MOV al, 255
END _START
J'ai également découvert que je devais utiliser le /c
commuter avec ml puis relier séparément avec /SUBSYSTEM:CONSOLE
.
Je viens de redécouvrir l'assemblage x86 et MASM32 et je me familiarise avec les bases.J'ai donc écrit un programme court et inutile, pour voir si je pouvais assembler n'importe quoi :
.686P
.MODEL FLAT
.CODE
START:
MOV al, 255
END
L'Iran ml /coff test.asm
et j'ai obtenu ce résultat :
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
J'ai lu en ligne que START était le nom du point d'entrée.Ai-je mal fait cela ou c'est un problème différent ?
Merci d'avance!
La solution
Je n'ai pas MASM, mais généralement le point d'entrée est _start:
, pas START:
.
Autres conseils
Cette directive END est utilisée pour définir le point d'entrée :http://msdn.microsoft.com/en-us/library/wxy1fb5k(v=vs.80).aspx
Donc END devrait être END START.L’étiquette du point d’entrée peut être n’importe quel nom d’étiquette valide.