Why does entry point of _start results in error when linking with GCC on Windows/MinGW?Warum führt der Einstiegspunkt von _start beim Verbinden mit GCC unter Windows/MinGW zu einem Fehler?
Unter Verwendung der folgenden .asm Datei, die ich zusammenbauen und Link die folgenden Befehle unter Windows 10 unter Verwendung von MinGW mit:
nasm -f win32 helloworld.asm
gcc -e_start -o helloworld helloworld.obj
Montage funktioniert gut, aber Verknüpfung erzeugt den folgenden Fehler:
c:/dev/mingw/bin/../lib/gcc/mingw32/4.9.3/../../../libmingw32.a(main.o):(.text.startup+0xa0): undefined reference to `[email protected]'
Ändern _start
zu _main
alles scheint gut zu funktionieren. Warum das?
BITS 32
global _start
extern _printf
section .text
_start:
push msg
call _printf
add esp, 4
ret
msg:
db "HelloWorld", 10, 0
Können Sie Ihren Quellcode anzeigen? –
Der Quellcode ist bereits in der Frage. Es ist der .asm-Code, den Sie sehen. – Shuzheng
Warum haben Sie es dann C++ markiert? –