gcc meldet Error trotz vorhandenem Header in FreeBSD

0

0x41

Grünschnabel
Hallo,

Ich habe das Problem ,daß ich mit der X.h header Datei arbeiten möchte,
aber gcc findet sie nicht, obwohl sie da ist.
Nachgeguckt habe ich schon...

Der Error sieht wie folgt aus : "error: X11/X.h: No such file or directory"

Vielleicht fällt euch ja was ein.

Vielen Dank im voraus.

0x41
 
Wie sehen denn die zuhgehoerige include-Direktive und der Kompilierbefehl aus? gcc durchsucht ja nicht die gesamte Festplatte.
 
hai,

ich habe schon alles ausprobiert...
#include <X11/X.h>
#include "X11/X.h"
#include <X.h>
#include "X.h"

kompilert habe ich das ganze ganz normal mit ' gcc -o mein_file mein_file.c'
Ich habe vom linken von Dateien nicht so viel Ahnung...
Man kann ja auch mit -I oder -L spezielle Pfade an gcc übergeben, aber so weit bin ich noch nicht wirklich.
Habe das zum Teil auch schon ausprobiert, aber auch wenn ich den Pfad für die Header Dateien mit -I/usr/local/include/X11 angebe ,findet gcc X.h nicht.
 
Vielleicht mit einem find überprüfen ob die Header-Dateien auch wirklich da sind?
 
Was ist denn die Ausgabe von 'cpp -v'? Bitte moeglichst Befehl und Ausgabe per cut-and-paste und in code-tags angeben.
 
Ups, hatte nicht ganz gelesen. Vielleicht muss bei freebsd explizit -I. -L. mit angegeben werden. Vielleicht ja auch ein Rechte-Problem?
 
Hi,

steht im Source-File xyz.c
Code:
#include <X11/X.h>
dann sollte mit
Code:
$ gcc -I /usr/local/include -o xyz xyz.c
auf jeden Fall schon mal das Include-File gefunden werden. Wahrscheinlich wirst du aber noch zusätzlich Optionen benötigen, um dem Compiler mitzuteilen, welche Libraries er dazulinken soll und wo er die finden kann (also z.B. "-L /usr/local/lib -lXYZ", falls du Funktionen aus einer XYZ-Library verwendest, und die entsprechende libXYZ.so sich in /usr/local/lib befindet).

Gruss, A.
 
Mit 'cpp -v' erhaltst Du eine Liste der Pfade, die automatisch durchsucht werden. Befindet sich die Datei X.h in einem anderen Verzeichnis, so musst Du sie mit '-I' beim Aufruf von gcc angeben. Bei mir (Debian jessie), liesst sich der entsprechende Teil so:
Code:
Thread model: posix
gcc version 4.7.3 (Debian 4.7.3-4) 
COLLECT_GCC_OPTIONS='-E' '-v' '-mtune=generic' '-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/4.7/cc1 -E -quiet -v -imultilib . -imultiarch x86_64-linux-gnu - -mtune=generic -march=x86-64
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/x86_64-linux-gnu/4.7/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/4.7/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
Da sich X.h bei mir in /usr/include/X11/X.h befindet, reicht die Angabe '#include <X11/X.h>' aus.
 

Ähnliche Themen

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

Zeilen löschen und ersetzen mit sed

VHOST Problem, Debian Lenny

XFCE freezes at startup

ubuntu erkennt netzwerkarte nicht

Zurück
Oben