Header Dateien

F

fanatika

Neues Mitglied
Thread Starter
Dabei seit
04.02.2004
Beiträge
19
Reaktionspunkte
0
Hi Leute,

hab da ein kleines Problem.......hoffe jemand kann mir helfen.
Hab grade Xcode installiert um einwenig C zu programmieren. Jetzt hab ich das Problem das er schon beim compilieren des Template "Hello World" Programms die Header Datei <stdio.h> nicht findet.

Hab ich bei der Installation was falsch gemacht ?
Wo bekomm ich diese Datei her und wo muß sie dann hin.


Vielen Dank für Eure Hilfe im voraus
Gruß
Fanatika
 
Wie sieht denn dein Quellcode aus?

Wenn du die Entwickertools richtig installiert hast sollten die Herderfiles da sein.
Normalerweise liegen die files unter /usr/include

Hast du fink installiert und da mal was kompiliert?
 
Habe noch garkein Code geschrieben ehrlich gesagt =)

Habe erstmal nur versucht das HelloWorld Template das automatisch erstellt wird auszuführen, und da hatte er schon Probleme.

Bekomme beim Build & Run erst die Meldung "stdio.h: no such file"

Gruß
Fanatika
 
Hmm.. ehrlich gesagt arbeitei chnicht mit xcode und kann das daher nicht nachvollziehen wo das Problem liegt...

Ich kann dir eben nur sagen, dass der gcc seine Includes in /usr/include liegen hat. Und soweit ich weiss greift xcode doch auch auf den gcc zurück, oder?

Hast du den gcc installiert? Einfach mal im terminal gcc eingeben...

Wenn es xcode-spezifisch ist kann ich nicht helfen sorry...
 
Hmm habe grade nochmals das packet gcc2.nochwas installiert. Aber auch wenn ich versuche das ganze per gcc im Terminal zu compilieren bekomme ich die meldung "hallo.c:1:19: stdio.h: no such file or directory.

Gruß
Fanatika
 
irgendwas läuft da falsch...

Hast du die datei an der besagten Stelle liegen?

Wie genau sieht denn der Code aus... Ich glaub zwar nciht, dass er falsch ist, aber ein Hello World is ja cnith so extrem lang...

Schonmal was auf Fink kompiliert?
 
Glaub ich auch das da was falsch läuft =)

Also unter /usr/include habe ich ein paar .h Dateien, allerdings keine stdio.h.

Das "HelloWorld" sieht folgendermaßen aus:

#include <stdio.h>

int main (int argc, const char * argv[] {
// insert code here.....
printf("Hello, World\n");
return 0;
}

Würde es denn ausreichen mir irgendwo die stdio.h zu besorgen und in das entsprechende Verzeichniss zu kopieren ?

Gruß
Fanatika
 
Original geschrieben von fanatika
Also unter /usr/include habe ich ein paar .h Dateien, allerdings keine stdio.h.

[...]

Würde es denn ausreichen mir irgendwo die stdio.h zu besorgen und in das entsprechende Verzeichniss zu kopieren ?
&nbsp;

Nein, das würde ich dir nicht empfehlen... Die eine Datei wäre dann zwar da, aber das würde nur Sinn machen wqenn du sie gelöscht hättest. So wie es im Moment ist, schätze ich mal, dass du in Kürze auf weitere fehlende Dateien stoßen würdest... Schliesslich scheint ja bei der Installation irgend was zu fehlen...

hmm... ich würd evtl, alle Entwicklerwerkzeuge nochmal neu installieren...
 
So endlich funktioniert es!!!

Da ist wohl tatsächlich gestern etwas bei der Installation schief gelaufen, denn nachdem ich alle Packete nochmals installiert habe geht es plötzlich.

Also vielen Dank für deine Hilfe

Gruß
Fanatika
 
Super... Na dann mal Happy coding ;)
 
So da bin ich wieder =)

hatte schon meine ersten Erfolgserlebnisse =)

Hab aber auch wieder ne Anfängerfrage:

In der FH benutzen wir häufig eine include datei namens textio.java bzw kompiliert textio.class, kann ich diese datei einfach ins /usr/include verzeichniss kopieren und dann im Quelltext includieren, damit die sache läuft ?

Gruß
Fanatika
 
Zuletzt bearbeitet:
Original geschrieben von fanatika

In der FH benutzen wir häufig eine include datei namens textio, kann ich diese datei einfach ins /usr/include verzeichniss kopieren und dann im Quelltext includieren, damit die sache läuft ?
&nbsp;

Ne, lass mal... in das Verzeichnis sollte nur die offiziellen includes. Du machst das anders. Da du die Include ja "nur für dieses Projekt" brauchst stopfst du sie in das Verzeichnis in den auch die Quellen liegen.

Du machst das Include dann folgendermassen:

#include "inckludedatei.h"

anstatt

#include <standardlib.g>

Erläuterung:
Verwendest du <> sucht der Compiler in seinem Includepfad. Wenn du "" verwendest sucht er zuerst im aktuellen Verzeichnis.

Hättest du eine Verzeichniseinteilung mit 2 Verzeichnissen. Eins "src" wo deine Quellen .c drin liegen und ein "include" wo deine .d drinn liegen würdest du das mit

#include "../include/includedatei.h"

machen.

"" geht also vom aktuellen Verzeichnis aund und kann von dort auch den Pfad wechseln.

:)
 
Oha... Moment, das ist ja java... Hab ich ganz übersehen....
 
Ja stimmt sorry ist mein Fehler,

bin im Fred plötzlich von C nach Java gewechselt.
 
In Java hast du ja in deinem .java-File eine Klasse. Wenn du diese Datei in das Verzeichnis kopierst in welchen auch deine anderen Quelldateien (.java) dieses Projekts liegen kannst du direkt auf die Klasse zugreifen. Du musst nichts includen.

Vorsicht: Java und C sind 2 vollkommen andere Welten, und damit meine ich nicht nur, dass Java OO ist und C nicht.

Java nutzt nicht den gcc sondern den javac. Ebenso sind die Include-Dateien für C vollkommen nichtssagend für deinen Java-Compiler.

Da du aber anscheinend noch am Anfang stehst hier ein Buchtipp. Und das Buch ist sogar kostenlos:

http://www.javabuch.de

Damit solltest du schnell die anfänglicehn Probleme überwinden (ich hoffe du hast schon Programmiererfahrung, sonst könnt es haarig werden mit dem Buch).
 
Naja so ganz fremd sind mir die Themen nicht....bin nur etwas (sehr) aus der Übung. Das muß sich aber jetzt ändern.

Aber vielen Dank nochmals für deine Mühe, werde heute abend mal sehen ob ich dann mit der textio.class irgendwie weiterkomme.
 
OK.

Die .class ist die compilierte Version der .java und sollte auch einfach in das Quellcodeverzeichnis reingelegt werden in dem du arbeitest... Dann kannst du es einfach verwenden ohne es includen zu müssen oder sowas...

Viel Spass... Und bei weiteren Fragn... einfach melden ;)
 
Zurück
Oben Unten