Forum: Mikrocontroller und Digitale Elektronik Raspberry Header Datei nicht gefunden


von Max U. (talha74)


Lesenswert?

Guten Morgen,
ich versuche gerade eine .c Datei anzupassen. Wenn ich diese jedoch 
compile, sagt er mir, dass die Headerdatei "glib.h" nicht gefunden 
wurde, obwohl die Datei in dem Ordner ist, wo ich arbeite.
Neu installieren aller Komponente hat ebenfalls nicht geholfen.

/* gdkconfig.h
 *
 * This is a generated file. Please modify `configure.ac'
 */

#ifndef _GDKCONFIG_H_
#define _GDKCONFIG_H_

#if !defined (_GDK_H_INSIDE_) && !defined (GDK_COMPILATION)
#error "Only <gdk/gdk.h> can be included directly."
#endif

#include <glib.h>

G_BEGIN_DECLS


#define GDK_WINDOWING_X11
#define GDK_WINDOWING_BROADWAY
#define GDK_WINDOWING_WAYLAND

G_END_DECLS

#endif  /* _GDKCONFIG_H_ */



Das ist der Code. Und bei #include <glib.h>
meint er, er könne die Datei nicht finden.

Muss ich da irgendwie root-Rechte aktivieren, damit das Programm auf die 
Dateien zugreifen kann?

Über jegliche Anregung bin ich Dankbar.

Viele Grüße

Max

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Max U. schrieb:
> #include <glib.h>

Mach da mal
1
#include "glib.h"
draus.

Bei spitzen Klammern wird in den Standard-Pfaden gesucht (z.B. 
/usr/include), bei Gänsen im aktuellen Verzeichnis, bzw. dort, was 
mittels der Option -I angegeben wurde.

von Bauform B. (bauformb)


Lesenswert?

Früher sollte man "pkg-config" verwenden oder man brauchte sowas 
ähnliches:
1
CFLAGS= -O -std=c99 -pedantic -Wall -Wextra \
2
        -Wstrict-overflow=5 -Wno-unused-parameter \
3
        -D_GNU_SOURCE=1 -DUSE_TRACE \
4
        -fstack-protector \
5
        -Wl,-defsym=BUILD_TIME=$(NOW) \
6
        -I../../include \
7
        -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED \
8
        -I/usr/include/gtk-2.0 \
9
        -I/usr/include/gtk-2.0/gdk \
10
        -I/usr/lib/gtk-2.0/include \
11
        -I/usr/lib/i386-linux-gnu/gtk-2.0/include \
12
        -I/usr/include/atk-1.0 \
13
        -I/usr/include/cairo \
14
        -I/usr/include/pango-1.0 \
15
        -I/usr/include/gdk-pixbuf-2.0 \
16
        -I/usr/include/glib-2.0 \
17
        -I/usr/lib/glib-2.0/include \
18
        -I/usr/lib/i386-linux-gnu/glib-2.0/include \
19
        -I/usr/include/pixman-1 \
20
        -I/usr/include/freetype2 \
21
        -I/usr/include/libpng12

von Max U. (talha74)


Lesenswert?

Frank M. schrieb:
> Max U. schrieb:
>> #include <glib.h>
>
> Mach da mal
>
1
> #include "glib.h"
2
>
> draus.
>
> Bei spitzen Klammern wird in den Standard-Pfaden gesucht (z.B.
> /usr/include), bei Gänsen im aktuellen Verzeichnis, bzw. dort, was in
> -Ixxxxx angegeben wurde.

Ja das habe ich schon versucht. Jedoch kann ich die Datei nicht 
abspeichern, da mir die Berechtigungen fehlen.
Bin noch ziemlich neu mit dem RaspberryPI, ich weiß nicht wie ich mir 
die Berechtigungen zur Verfügung stelle.
Über die Terminal-Anwendung wäre das ja ganz einfach per
1
 sudo
 und dann den BEfehl den man anwenden möchte.
Aber wie geht das bei externen Anwendungen, dass ich dann auch diese 
"sudo-Rechte" bekomme, so dass ich Dateien speichern, verschieben kann.

von Bernd K. (prof7bit)


Lesenswert?

Max U. schrieb:
> dass die Headerdatei "glib.h" nicht gefunden
> wurde, obwohl die Datei in dem Ordner ist, wo ich arbeite.

Was hat die da zu suchen? Die sollte durch die Insallation des 
entsprechenden dev Pakets auf dem System installiert sein, zum Beispiel 
libglib2.0-dev oder so ähnlich, dann findet er sie auch mit spitzen 
Klammern so wie alle anderen Header auch.

von Max U. (talha74)


Lesenswert?

Bernd K. schrieb:
> Max U. schrieb:
>> dass die Headerdatei "glib.h" nicht gefunden
>> wurde, obwohl die Datei in dem Ordner ist, wo ich arbeite.
>
> Was hat die da zu suchen? Die sollte durch die Insallation des
> entsprechenden dev Pakets auf dem System installiert sein, zum Beispiel
> libglib2.0-dev oder so ähnlich, dann findet er sie auch mit spitzen
> Klammern so wie alle anderen Header auch.

Die habe ich mit dem Terminal dorthin kopiert, als er mir den Fehler 
ausgespuckt hat.
Er hatte davor wegen einigen anderen Dateien gemeckert. Nachdem ich 
diese dann in das jeweilige Verzeichnis kopiert hatte, war Ruhe. Nur bei 
glib.h scheint das nicht so zu funktionieren.

von Bernd K. (prof7bit)


Lesenswert?

Max U. schrieb:
> Die habe ich mit dem Terminal dorthin kopiert, als er mir den Fehler
> ausgespuckt hat.
> Er hatte davor wegen einigen anderen Dateien gemeckert. Nachdem ich
> diese dann in das jeweilige Verzeichnis kopiert hatte, war Ruhe. Nur bei
> glib.h scheint das nicht so zu funktionieren.

Mach das alles wieder rückgängig.

Wenn Headerdateien fehlen installierst Du Die mit den entsprechenden 
-dev Paketen. Diese Header gehören zur Distribution genau wie die 
zugehörigen libs für die sie sind und werden von dieser bereitgestellt, 
dann werden sie auch genau in der richtigen Version vorliegen die zu den 
zugehörigen libs gehört.

Notfalls mit der Fehlermeldung googeln und dabei Ausschau halten auf 
Hinweise welches dev Paket noch installiert werden muss. Die notwendigen 
Dateien werden bei der Installation dann alle automatisch in die 
richtigen globalen Suchpfade installiert wo Compiler und Linker sie 
finden können.

Zum Kompilieren brauchst Du die -dev Pakete und die ziehen auch die 
zugehörigen libs mit rein, der Endnutzer der das fertige Programm 
einsetzt braucht später nur noch die "normalen" lib Pakete von denen 
viele schon installiert sein werden, welche genau das sind und wie die 
Pakete heißen mußt Du für die betreffenden libs die Du verwenden willst 
einzeln recherchieren.

Wenn Du fremde Software kompilieren willst könnte irgendwo ein README 
dabei sein in dem drin steht was alles zum Kompilieren gebraucht wird, 
wenn Du Glück hast ist das vollständig, andernfalls anhand der 
Fehlermeldungen selber recherchieren.

von d'ander (Gast)


Lesenswert?

Max U. schrieb:
> Aber wie geht das bei externen Anwendungen, dass ich dann auch diese
> "sudo-Rechte" bekomme, so dass ich Dateien speichern, verschieben kann.

ganz einfach, Programm von der Kommandozeile starten und sudo 
voranstellen.
sudo nano test.txt
öffnet die Datei Test im Editor Nano mit Root-Rechten.

von Rolf M. (rmagnus)


Lesenswert?

Max U. schrieb:
> Die habe ich mit dem Terminal dorthin kopiert, als er mir den Fehler
> ausgespuckt hat.
> Er hatte davor wegen einigen anderen Dateien gemeckert. Nachdem ich
> diese dann in das jeweilige Verzeichnis kopiert hatte, war Ruhe. Nur bei
> glib.h scheint das nicht so zu funktionieren.

Das ist der falsche Weg. Du solltest nicht wild irgendwelche Files 
umkopieren, sondern dafür sorgen, dass sie dort erkannt werden, wo sie 
normalerweise liegen.

Max U. schrieb:
> Ja das habe ich schon versucht. Jedoch kann ich die Datei nicht
> abspeichern, da mir die Berechtigungen fehlen.

Das verstehe ich nicht. Warum hast du keine Berechtigungen? Wo liegt 
diese gdkconfig.h denn? Du müsstest du doch eigentlich durch configure 
erstellt haben. Dann ergibt es aber keinen Sinn, wenn du da keinen 
Zugriff drauf hast.

> Bin noch ziemlich neu mit dem RaspberryPI, ich weiß nicht wie ich mir
> die Berechtigungen zur Verfügung stelle.

Die braucht man zum compilieren nicht. Höchstens später zum 
installieren. Was willst du denn überhaupt machen, und wie versuchst du 
das?

> Über die Terminal-Anwendung wäre das ja ganz einfach per sudo  und dann
> den BEfehl den man anwenden möchte.
> Aber wie geht das bei externen Anwendungen, dass ich dann auch diese
> "sudo-Rechte" bekomme, so dass ich Dateien speichern, verschieben kann.

Was verstehst du unter "externen Anwendungen"?

von Max U. (talha74)


Lesenswert?

Rolf M. schrieb:
> Max U. schrieb:
>> Die habe ich mit dem Terminal dorthin kopiert, als er mir den Fehler
>> ausgespuckt hat.
>> Er hatte davor wegen einigen anderen Dateien gemeckert. Nachdem ich
>> diese dann in das jeweilige Verzeichnis kopiert hatte, war Ruhe. Nur bei
>> glib.h scheint das nicht so zu funktionieren.
>
> Das ist der falsche Weg. Du solltest nicht wild irgendwelche Files
> umkopieren, sondern dafür sorgen, dass sie dort erkannt werden, wo sie
> normalerweise liegen.
>
> Max U. schrieb:
>> Ja das habe ich schon versucht. Jedoch kann ich die Datei nicht
>> abspeichern, da mir die Berechtigungen fehlen.
>
> Das verstehe ich nicht. Warum hast du keine Berechtigungen? Wo liegt
> diese gdkconfig.h denn? Du müsstest du doch eigentlich durch configure
> erstellt haben. Dann ergibt es aber keinen Sinn, wenn du da keinen
> Zugriff drauf hast.
>
>> Bin noch ziemlich neu mit dem RaspberryPI, ich weiß nicht wie ich mir
>> die Berechtigungen zur Verfügung stelle.
>
> Die braucht man zum compilieren nicht. Höchstens später zum
> installieren. Was willst du denn überhaupt machen, und wie versuchst du
> das?
Also, ich möchte mehrere Sensoren gleichzeitig ausmesssen (0-10V). Dazu 
habe ich mir die Messkarte "MCC118 DAQ" zugelegt, die 8 Eingänge hat. 
Dazu gibt es auf Github alles Nltige (Libraries, besipiele etc.). Nach 
der Anleitung auf Github bin ich auch vorgegangen. So weit so gut...
Wenn ich nur einen Sensor auslese, ist alles perfekt. Die Werte werden 
in eine .csv-Datei geschrieben, womit ich dann mit MatLab später die 
Analyse durchführe. Wenn ich jedoch mehrere Channels auslesen möchte, 
schreibt das Programm die Werte aller Channels in eine Spalte, was dann 
folgendermaßen aussieht: (         Spalte 1                Spalte 2 
Spalte 3)
           Channel1 Channel2 Channel 3
             1,5546   1,465   1,4641
             1,847    1,847   1,4842
                   ..........
Damit kann MatLab natürlich nicht arbeiten, Deshabl möchte ich die 
Datei, die diesen Schreibeprozess durchführt so ändern, dass pro Channel 
eine Spalte verwendet wird. Am Ende soll dann sowas bei rauskommen:
           Spalte 1     Spalte 2       Spalte 3
           Channel1     Channel2       Channel3
              xxx         xxx             xxx
              xxx         xxx             xxx
                    ............

>
>> Über die Terminal-Anwendung wäre das ja ganz einfach per sudo  und dann
>> den BEfehl den man anwenden möchte.
>> Aber wie geht das bei externen Anwendungen, dass ich dann auch diese
>> "sudo-Rechte" bekomme, so dass ich Dateien speichern, verschieben kann.
>
> Was verstehst du unter "externen Anwendungen"?

von Bernd K. (prof7bit)


Lesenswert?

Du hast immer noch nicht erklärt wozu du root-Rechte brauchst beim 
Editieren und Kompilieren von selber(!) runtergeladenem Zeugs. Warum 
gehört das Zeug plötzlich root, als Du es von github bezogen hast 
gehörte es noch Dir! Was hast Du getan?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.