VORSICHT:
Compiler-Schalter "-c", lass den weg
So.. Erklärung:
gcc ist Compiler und Linker und Assembler und so weiter in einem (GCC =
GNU Compiler Collection). So funktionierts:
"gcc -c blabla.c" compiliert eine Quelldatei (ASM, C, C++, is egal) und
erzeugt eine Objektdatei (typischerweise blabla.o, durch dein "-o" wurd
der Standardname aber überschrieben). Die kannst du dir vorstellen, wie
ein Stück Programm, bei dem aber sämtliche Aufrufe von Funktionen usw.
noch in der Wildnis landen, also noch nicht möglich sind. Der Sprung zu
main() ist eben auch nicht möglich (der zu printf auch nicht, davon mal
abgesehen), deshalb wird nix angezeigt bei dir.
Deshalb musst du nun diese Objektdatei (oder Objektdateien, je nach dem,
wie viele du hast) noch zusammenlinken. Dabei werden die
Funktionsaufrufe "zurechtgebogen", also landen nicht mehr irgendwo,
sondern dort, wo auch der richtige Code im Speicher steht. Das ist das
Prinzip von DLLs (wie sie bei Windows heißen).
Das Linken passiert so:
"gcc -o programm.exe obj1.o obj2.o ..."
Einfacher gehts aber (wenn du z.B. nur eine C-Quelldatei hast), indem du
alles in einem Rutsch machen lässt:
"gcc -o programm.exe blabla.c"