Christian Seiler: Fragen zu C++

Beitrag lesen

Hallo Andreas,

Normalerweise auf allen Windows-VErsionen, oder? Das reicht dich. Ich schreibe doch kein Tool gleichzeitig für Windows und Unix, was vor allem darin begründet ist das Windows zumeinst als Client un Unix meist als Server verwendet wird uns so auch meist andere Anfwenungen benötigt werden.

Nun ja - mit QT kann man auch Windows _und_ UNIX-Programme schreiben, die man halt "nur"[tm] neu kompilieren muss. (und evtl. "nur"[tm] etwas anpassen muss)

$ gcc -c -mno-cygwin hello.c
was machst Du hier? Das ist ja noch kein Compilieren, oder? Und .c, das ict doch kein  c++, gibt es da noch Unterschiede?

Das ist kompilieren. Das -c steht ja für "compile". Das erzeugt aus der .c-Datei (C-Quelltext) eine .o-Datei (Objektdatei, d.h. schon kompiliert aber mit noch gar nichts verknüpft)

$ gcc -o hello -mno-cygwin hello.o
ja, das kenne ich(obwohl es bei mir ja nicht funktioniert hat), aber woher hast Du jetzt hallo.o?

Das ist das Linken. Das kennst Du nicht. Du hast ihm direkt die .c-Datei gegeben. Da hat er kompiliert und gelinkt auf einmal. Wenn Du aber anfängst, mehrere Dateien zu haben, dann _könntest_ Du sie zwar alle an gcc übergeben, aber dann kompiliert er jede einzelne jedes Mal neu, obwohl Du evtl. nur eine Datei verändert hast. Daher ist es später sinnvoller, alle Dateien erst zu kompilieren und dann erst die Objektdateien zu linken. Du brauchst dann natürlich ein Buildsystem, das Veränderungen erkennt und dadurch weiß, welche Datei jetzt neukompiliert werden muss und welche nicht; aber das kommt dann erst später. Nur jetzt mal so als Einführung.

Was heißt denn System-Spezifisch? nur Windows-spezifisch, oder auch Wind2000 spezifisch...?

Nur Windows-Spezifisch. (Win32 um genau zu sein, d.h. Win95,98,ME,NT4,2000,XP,evtl. auch NT3.51 und evtl. auch Win3.11 mit Win32s-Erweiterungen)

Grüße,

Christian