Moin Leute,
Ich bin grade am rumspielen mit C.
Hab mir das Buch C Programmieren von Anfang an geholt.
Soweit sogut, hab die hello world.c abgetippt und compiliert.
Ich nutze übrigens Win XP MinGW gcc.
Ich compiliere folgenden code:
hello.c
1
#include<stdio.h>
2
3
intmain(void)
4
{
5
printf("hello world!\n");
6
}
Compiliert eird mit folgender Zeile:
F:\MinGW\bin\gcc.exe -c F:\C-Programme\hello.c -o F:\C\hello.exe
Ich bekomm auch ohne Fehlermeldungen eine exe hin, aber wenn ich die im
cmd fenster aufrufe bekomme ich keine Ausgabe von "hello world!"!?
Kann Mir einer meinen Fehler sagen den Ich mache ??
Mfg Bouni
P.S.: Ich hab schon ca. ne stunde gegoogelt / im Forum gesucht aber nix
gefunden.
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"
Hallo,
verwendest du Visual C++ Express Edition von Microsoft???
Bei dem musst du nur, wenn du ein neues Projekt und so gestartet hast
und dein Programm im Fenster eingetippt hast, auf das kleine grüne
Dreieck oben klicken, und der Compiler macht alles. Nun noch über die
Kommandozeile starten, und dann sollte es eigenltich gehen.
Übrigends: Das Buch C Programmieren von Anfang an ist Klasse, gell???
Gruß, Steffen
Steffen O. wrote:
> Übrigends: Das Buch C Programmieren von Anfang an ist Klasse, gell???> Gruß, Steffen
Ja, ist es. Aber für Anfänger ist Microsoft Visual C++ der absolute
Overkill (isses zwar auch für Profis, aber das sei mal dahingestellt).
Schöne, kleine, portable Programme schreibt man nicht mit VC++...
Hallo,
ja, sorry, ich habe das schlichtweg überlesen, das er den Win XP MinGW
gcc Compiler verwendet.
Aber ich habe auch mit dem Visual Studio C++ angefangen, und finde die
Entwicklungsumgebung und alles andere ist sehr angenehm zum Bedienen,
und einfach zum Lernen. Ich bin von Anfang an sehr gut damit
klargekommen.
Gruß, Steffen
Hi,
Ich hasb seit dem WE ein EEE mit xubuntu drauf, unter Linux ist es so
viel einfacher mal eben was zu proggen!!
Da ist alles schon dabei, und was fehlt wird eben per apt nachgeladen
(gesetzt dem Fall es ist im pool).
Mfg Bouni
> gcc ist Compiler und Linker und Assembler und so weiter in einem (GCC => GNU Compiler Collection).
Eigentlich ist es nur der Compiler, kann aber als Frontend für die
anderen Tools verwendet werden. Der Linker und der Assembler gehören
eigentlich zu einem anderen Softwarepaket (binutils).
> "gcc -c blabla.c" compiliert eine Quelldatei (ASM, C, C++, is egal) und> 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"
Hier ist es allerdings nicht mehr egal, in welcher Sprache die
Quelldatei ist. Für den Compiler ist es das zwar immer noch (der erkennt
das an der Endung des Dateinamens), aber für den Linker ist es nicht
egal.