PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme beim compilieren eines kleines programms



mm-motm
22.11.04, 17:11
Hullo

ich bin gerade dabei ein kleines Projekt (Programm) in C zu starten, doch leider habe ich ein kleines
Startproblem. Ich kann das Programm nicht kompilieren.

Mein Problem ist das ich den Quellcode auf mehrere Datein aufsplitten will.

main.cc //globale Variablen, Main
global.h //#defines, globale Variablen,includes
funktionen.h //prototyp der funktionen
funktionen.cc //die funktionen.

Bis jetzt mach ichs so das ich in main infach #include "global.h" und #include "funktionen.h" stehn hab, und dann die globalen Variablen sammt Hauptprogramm

In global.h hab ich die includes der benoetigten header datein, ein paar #defines und die globalen Variablen (mit einem extern davor, weil so hab ich gehoert darf eine globale variable nur einmal definiert werden).

in funktionen.h hab ich die prottypen

und in funktionen.cc die funktionen


main.cc
#include "global.h"
#include "funktionen.h"
int globalevariable;
int main()
{return;}

global.h
#ifndef GLOBAL_H
#define GLOBAL_H
#include <stdlib.h>
#define etwas 1234
extern int globalevariable;
#endif

funktionen.h
#ifndef FUNKTIONEN_H
#define FUNKTIONEN_H
void prototyp(int i);
#endif

funktionen.c
#define "global.h"
#define "funktionen.h"

void prototyp(int i)
{
return i;
}



So als IDE verwende ich Anjuta, ich hab alle datein in das src verzeichniss des projektes gelegt, und dann die header Datein in das projekt inkludiert. (anjuta hat dann die header datein in das include Verzeichniss kopiert). Kompilieren kann ich main.cc aber die anweisung #include "global.h" wird seltsamerweise unterstrichen, ohne das eine Fehlermeldung erscheint.
Wenn ich das gantze dann linken will, gibts aber Probleme weil die globalen variablen die ich in funktionen.h verwende nicht bekannt sind.

SO meine eigentlichen Fragen. Wie bekomm ich das gantze mit Anjuta zum laufen, und wie funktioniert das eigentlich mit gcc also per Hand wenn man wie in diesem Fall mehrer Quelldatein hat.

citizen428
22.11.04, 17:48
und wie funktioniert das eigentlich mit gcc also per Hand wenn man wie in diesem Fall mehrer Quelldatein hat.
Entweder mittels

# cc foo.c bar.c -o baz

oder mit

#cc -c foo.c
#cc -c bar.c
#cc foo.o bar.o -o baz