Anfängerfrage zu Modulen

Pollux

Erfahrenes Mitglied
Hallo zusammen,

sitze gerade an einer Datei, die ich drei Teile aufsplitten soll:

eine bla.h
eine bla.cpp
-> Funktionen und Implementierungen
und eine bla_main.cpp
-> nur main und der Funktionsaufruf

Ich steige da aber nicht 100%ig durch. Das Aufteilen habe ich soweit gemacht. Die bla.h wird von der bla.cpp includet, aber:
Ich muss doch die bla.cpp kompilieren und später zur main linken, oder?
Wir kompiliere ich denn mit dem g++, wenn ich keine main-Funktion habe?

Ich stehe echt auf dem Schlauch... :(
 
Hallo,

In die "bla_main.cpp" muss
Code:
#include "bla.h"
noch rein... du kompilierst dann die "bla_main.cpp".

MfG Turri
 
Hallo,

wenn du eine Quelldatei ohne main hast kannst du die mit dem g++ so übersetzen:

Code:
g++ -c datei.cpp

danach solltest du eine Objektdatei erhalten namens "datei.o"

diese Objektdatei kannst du dann zu deiner Datei mit der main- Funktion hinzubinden:

Code:
g++ datei.o main.cpp

Gruß,
RedWing
 
hallo,
wenn du das so machst:
Hallo,

In die "bla_main.cpp" muss
Code:
#include "bla.h"
noch rein... du kompilierst dann die "bla_main.cpp".

MfG Turri

dann kann es sein das du in der "bla.h" deine funtkionsprototypen (falls es globale funktionen sind) so definieren musst:
Code:
extern void funktionsname();

mfg adam
 
Hallo,
hallo,
wenn du das so machst:


dann kann es sein das du in der "bla.h" deine funtkionsprototypen (falls es globale funktionen sind) so definieren musst:
Code:
extern void funktionsname();

mfg adam

Wenn die Funktionsdefinitionen (bei Ihm in bla.cpp enthalten) nicht mit kompiliert
werden und anschließend zu der Datei wo sie verwendet werden nicht mit
hinzugelinkt werden, verhindert auch deine Deklaration den Linker Fehler nicht...
Man muss definitiv die Qeulldatei (die die Funktionsdefinitionen enthalten) zuerst in
eine Objektdatei übersetzen und diese dann zu der Datei hinzubinden wo die
Funktionen benutzt werden...

Gruß,
RedWing
 
dachte mir das könnte funktionieren, ich nutze das visual studio, deshalb kann ich recht wenig zum g++ sagen. ;)
hätte ja sein können das es funktioniert.
 
Zurück