Headerdateien

ollek81

Erfahrenes Mitglied
Tach!!

Ich bastel hier nu schon 2 Stunden an nem Programm...
Ich hab da ein paar selbstgebaute Headedateien includet der Linker motzt aber rum:
Undefined symbol CloseGraph() in module v3_main.c
Für die anderen Funktionen natürlich das Selbe in grün...

arbeite mit Borland C++ 3.0, weil der Uni-Prof das so will...

Ich weiß nicht weiter... Ich kann machen was ich will, das läuft nicht!!
Kann mir bitte jemand helfen??

Der ganze Quark ist angehängt!!

MfG

ollek81
 

Anhänge

  • pra.zip
    10,6 KB · Aufrufe: 19
Dies wird ein Linker-Problem sein. Du musst die Lib dazulinken.
Leider kenne ich Borland C++ nicht und kann Dir keine genaue Lösung anbieten. Aber mit diesem Hinweis findest Du womöglich selbst die Lösung!

/edit
Hab noch etwas nachgeforscht! Es könnte auch daran liegen, frag mich nicht warum, dass Du bei Initgraph den Pfad zur BGI nicht angegeben hast.

Probiere mal doch folgendes Beispiel:
Code:
// Programm uhr.cpp 
#include <graphics.h> 
#include <stdio.h> 
#include <conio.h> 
int main (void) 
{ 
 int grdriver = DETECT, grmode; 
 int errorcode; 
 initgraph(&grdriver, &grmode, "c:\\tc\\bgi"); 
 errorcode= graphresult(); 
// printf("\a\n"); 
 if(errorcode) 
 { 
  printf("Fehler %d bei der Grafik-Initialisierung \a\n",errorcode); 
  return 1; 
 } 
// ---------------------------- hier kommen die eigentlichen Grafik-Befehle 
 setcolor(MAGENTA); 
 circle(30,40,10); 
// ----------------------------- Ende der Grafik-Befhle 
 getch(); //warte  auf Taste 
 closegraph(); 
 return 0; 
}
 
Zuletzt bearbeitet:
Tach goela!

Ich hab aber keine .lib!! Geschweige denn, dass der Compiler ohne 50 Fehlermeldungen eine machen würde!!! :-(

ollek81
 
asö .. das ist bei allen funktionen die du aus den headern aufrufst so, oder nur bei denen aus V3_GRAPH.C ?

probier doch mal alle c dateien mit
>g++ -c *.c
zu einer *.o datei zu übersetzen, und die anschließend mit
>g++ 1.o-dati 2.o-datei 3.o-datei
zu binden ..

klar, das du keine lib benutzt .. oder hast du irgendwo beim compiler -L eingestellt?

ps: kannst du das überhaupt manuell binden?
ich denke mal, dass in borland doch ein gnu dabei ist oder?

pps: darf ich fragen was du studierst?
wegen borland .. wundert mich, wir machen alles von hand :D ;)
 
Tach!!

Ich studiere Mechatronik... Gnu haben wir schon hinter uns...
Das mit dem compiler -L habe ich schon versucht (so zu sagen...) Man kann dem Borland-Compiler auch sagen, dass er ne lib bauen soll. Allerdings spuckt er zig Fehler aus...

Die Fehlermeldung, die ich jetzt habe, ist bei allen Funktionen aus allen Headerdateien, die ich in V3_MAIN.C BENUTZE!!

Meinst du denn, dass der GNU überhaupt den Borland-Kram versteht?? Schmeißt der nicht auch wieder mit Fehlermeldungen wegen falscher Syntax um sich??

ollek81
 
also was du da hast ist kein borland kram, sondern ganz normaler c code

versuch das echt mal von hand zu binden, dann siehst du wenigstens genau, wo dein fehler liegt!

bei mir kann ich zb. erst mal nichts inkludieren, da die dateinamen groß geschrieben sind, und in den files sind sie klein geschrieben, das liegt aber an meinem linux. ;)
 
Tach!!

Also der GNU; den ich habe, kennt z.B. schon mal die graphics.h nicht... Die hab ich ja noch rein kopieren können. Aber dann hat er auch nur Fehlermeldungen rausgehauen, dass im Programm Sachen nicht passen. Kann ich auch vergessen...
Sch... Das muss doch irgendwie gehen!!!

Wenn keiner mehr ne Lösung hat, muss ich den ganzen Rotz halt in eine große Datei packen... Kann aber auch nicht Sinn und Zweck der Übung sein...

MfG

ollek81
 
naja .. dann pack doch einfach mal alles in ne große datei ..

wenn das läuft, dann liegt es wirklich nur noch am includieren, und du kannst dir sicher sein, dass sich die fehler auf verlinkungen und inklusionen beschränken und dein code läuft!
 
Also ich habe das mal in VC++ eingeladen.
Ich habe da mal ein Problem, daß ich die graphics.h nicht habe, ok, das liegt warscheinlich an mir.
Aber was mir auffällt, is daß du eine struct in der Main deklarierst, aber du möchtest sie in einer Header-Datei verwenden, die du vor der Deklaration der struct in der Main includierst, da läuft was schief, also ich würde das auch mal überprüfen.
Außerdem hast du da noch einige syntaktische Fehler drin. Ich empfehler dir wie Transmitter schon gesagt hat, pack mal alles zusammen, und beheb sämtliche Compilerfehler und dann wieder aus einanderpflücken.

Gruss Homer
 
Tach!!

Hab das jetzt mal alles zusammengepackt... Läuft, ist aber total für'n A. Naja, ist ja nicht auf meinem Mist gewachsen. Soll nur korrigieren. ;-)
Selbst wenn ich syntaktische Fehler drin haben sollte, müsste doch der Compiler meckern, und nicht der Linker, weil er die Funktion nicht findet!!! Oder sehe ich da was falsch??

ollek81
 

Neue Beiträge

Zurück