Danke, die main- und die printf-Funktionen werden nicht mehr bemängelt, wenn ich mit dem gcc linke.
Aber _factorial (auch mit Unterstrich am Anfang) will auch gcc nicht kennen...
BTW: Welche Bibliotheken werden benötigt, um das ganze mit ld zu linken? libc.a gibt's unter Windows bzw. MinGW nicht, soviel ich gesehen habe.
Und gcc ruft doch zum Linken auch nur den ld auf, somit wäre dann doch wieder alles beim Alten, oder gibt der dann noch die nötigen Libs zum linken per Parameter mit?
[EDIT]
Die Objekt-Datei mit -S und -r gedumpt:
main.o: file format pe-i386
Disassembly of section .text:
00000000 <_main>:
0: 55 push %ebp
1: 89 e5 mov %esp,%ebp
3: 83 e4 f0 and $0xfffffff0,%esp
6: 83 ec 20 sub $0x20,%esp
9: e8 00 00 00 00 call e <_main+0xe>
a: DISP32 ___main
e: c7 44 24 1c 05 00 00 movl $0x5,0x1c(%esp)
15: 00
16: 8b 44 24 1c mov 0x1c(%esp),%eax
1a: 89 04 24 mov %eax,(%esp)
1d: e8 00 00 00 00 call 22 <_main+0x22>
1e: DISP32 __factorial
22: 89 44 24 08 mov %eax,0x8(%esp)
26: 8b 44 24 1c mov 0x1c(%esp),%eax
2a: 89 44 24 04 mov %eax,0x4(%esp)
2e: c7 04 24 00 00 00 00 movl $0x0,(%esp)
31: dir32 .rdata
35: e8 00 00 00 00 call 3a <_main+0x3a>
36: DISP32 _printf
3a: b8 00 00 00 00 mov $0x0,%eax
3f: c9 leave
40: c3 ret
41: 90 nop
42: 90 nop
43: 90 nop
main hat 3 Unterstriche, _factorial einen zusätzlichen und printf auch einen...