PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : eigene Headerdateien erstellen



02-11-2000, 11:23
Hallo zusammen,

ich habe gestern schon wieder ein Problem entdeckt;-)) Wie geht das mit der Erstellung eigener Headerdateien vor sich?

Ich bin wie folgt vorgegangen:

Erstellung einer Datei "stefan.h" mit folgendem Inhalt:

# include <stdio.h>

# define CLS printf("\033[2J")

danach in einer Datei

...

# include <stefan.h>

int main()
{
CLS;
}

das ganze kompaliert (ohne Fehlermeldungen) und dann gestartet. Leider läuft das Programm nicht. Was mache ich da falsch???

Gruß und Danke

Stefan

TheJudger
02-11-2000, 11:30
moin moin

ich kann deinen Text zwar nicht vollkommen lesen,

wahrscheinlich hast du aber
#include < stefan.h >
versucht ...

es sollte mit
#include"stefan.h"
funktionieren ..

thommy
02-11-2000, 13:02
"Muss" ist nicht ganz korrekt. Denn eigene Headerdateien können durchaus in &lt;...&gt; angegeben werden. Allerdings muss i.A. dem Compiler dann explizit gesagt werden, wo er die Dateien zu suchen hat ("-L /include-Pfad").

Bei Angabe von &lt;...&gt; sucht ein Compiler die Datei in Standardpfaden. Dies schließt das aktuelle Verzeichnis NICHT ein.

Mit "..." sucht der Compiler die Datei ausgehend vom aktuellen Verzeichnis (bzw. wenn die Datei als absoluter Pfad angegeben wird, in diesem).

Thomas

02-11-2000, 17:48
Hallo Tommy,

dann ist aber doch folgende Tatsache komisch! Wenn ich als root die Datei nach

/usr/include

kopiere funktioniert das Programm trotzdem nicht! Und auch mit der kompletten Pfadangabe hat die Sache leider nicht funktionukkelt!

Gruß

Stefan

03-11-2000, 00:47
Sorry,

ich vergaß html! Wieso muß man denn eigene Bibliotheken mit " einbinden???

Stefan

thommy
03-11-2000, 08:25
Ein kleiner Fehler ist mir unterlaufen...

Ausgangspunkt seien zwei Dateien "foo.c" und "foo.h".

Bindest Du foo.h via
<pre>
#include &lt;foo.h&gt;
</pre>
ein, so lautet den Compileraufruf:
<pre>
gcc foo.c -I./
</pre>

Du teilst dem Compiler also mit, dass er im aktuelle Pfad ebenso nach includes Ausschau hält (im vorherigen Posting hatte ich versehentlich "-L" geschrieben, diese Angabe betrifft aber den Bibliothekspfad)

Die Angabe von "-I./" kann entfallen, wenn "foo.h" in einem Standardpfad liegt (bspw. in /usr/include). Wenn das bei Dir nicht geht, ist etwas anderes faul.

Thomas

03-11-2000, 09:25
Hi,

wie ich sagte, bei mir klappt das auch nicht wenn ich die Datei in den Standartpfad kopiere. Und das für mich komischte überhaupt ist, daß der Compiler keinerlei Fehlermeldungen verursacht! Hast Du also noch ne andere Idee an was das liegen könnte? In meinem Programm müßte eigentlich nach dem Löschen des Screens einfach eine Meldung "Hallo Welt" oder so ausgegeben werden, aber es passiert gar nix! Oder muß ich vielleicht nach dem "Säubern" auch den Cursor neu positionieren???

Stefan