PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2 Dateien zusammenführen



KRibel
02-02-2006, 21:53
HI Leute,

habe eine Frage. Kann man in C 2 Dateien mit Quellcode zusammenführen.
D.h. in der Hauptdatei ist die main-Funktion drin und in der anderen sind alle anderen drin.
Kann ich die 2. Datei mit der Hauptdatei zusammenführen ohne den Quellcode da reinzukopieren?

Gruß

Konstantin

peschmae
02-02-2006, 21:55
#include? Dann macht das der Präprozessro.

Aber normalerweise tut man nur header mit den Funktionssignaturen includen, damit man die c-Dateien separat kompilieren kann (d.h. nur wenn sich da auch wirklich was geändert hat wird ne c-Datei neu kompiliert)

MfG Peschmä

KRibel
03-02-2006, 13:28
#include? Dann macht das der Präprozessro.


Wie ist das zu verstehen?
Also wenn ich 2 Dateien habe. a.c und b.c. Dann brauche ich eine Datei b.h und in die a.c Datei schreibe ich #include <b.h> hinein.
Wie kompiliere ich es dann mit gcc?
Ich habe es immer so gemacht, dass ich gcc -o a.x a.c eingetippt.
Was muss ich jetzt eintippen?

Gruß
Konstantin

anda_skoa
03-02-2006, 18:39
Peschmae meinte, du kannst natürlich die .c Datei inkludieren, nur normalerweise compiliert man getrennt und inkludiert nur einen Header.

Aber ein
#include "b.c"
geht auch, weil der Präprozessor das #include auswertet, bevor der Compiler den Code bekommt.

Ciao,
_

peschmae
03-02-2006, 20:00
Wie ist das zu verstehen?
Also wenn ich 2 Dateien habe. a.c und b.c. Dann brauche ich eine Datei b.h und in die a.c Datei schreibe ich #include <b.h> hinein.
Wie kompiliere ich es dann mit gcc?
Ich habe es immer so gemacht, dass ich gcc -o a.x a.c eingetippt.
Was muss ich jetzt eintippen?


Also entweder wie von anda_skoa (und mir vorher) gesagt die .c Datei selber includen.

Oder mit header (was "man" "normalerweise" macht) dann:
gcc -Wall -c b.c -o b.o
gcc -Wall -c a.c -o a.o
gcc -Wall *.o -o programm

Wobei du die einzelnen "gcc -c"-Schritte natürlich jeweils nur machen musst wenn du an der konkreten Datei was geändert hast. Den Schlussschritt (linken) brauchts aber in jedem Fall.

MfG Peschmä