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
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.
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 |
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.
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.
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.
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.
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.
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"?
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"?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.