Liebe Leute,
ich komm alleine nicht mehr weiter. Hab alles gelesen, was ich zum Thema gefunden habe.
Ich habe mir die aktuelle GNU Toolchain 'avr32-gnu-toolchain-linux_x86_64' und die dazugehörigen Header Dateien 'atmel-headers-6.1.3.1475' von der Atmel Seite geholt.
Beide ausgepackt, den Pfad zum bin Verzeichnis erweitert und die Header Dateien ins 'Include' Verzeichnis gepackt. Trotzdem wird beim Compilien die '#include <avr32/io.h> nicht gefunden.
Dann habe ich den avr32-gcc mit dem Parameter -v aufgerufen, damit mir die Suchpfade angezeigt werden.
#include "..." search starts here:
#include <...> search starts here:
/home/user/avr32-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr32/4.4.7/include
/home/user/avr32-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr32/4.4.7/include-fixed
/home/user/avr32-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr32/4.4.7/../../../../avr32/include
Nachdem ich weiter hin die Fehlermeldung bekomme:
'error: avr32/io.h: No such file or directory'
hab ich praktisch schon überall die h Dateien hinkopiert:
/home/user/avr32-gnu-toolchain-linux_x86_64/io.h
/home/user/avr32-gnu-toolchain-linux_x86_64/bin/io.h
/home/user/avr32-gnu-toolchain-linux_x86_64/include/io.h
/home/user/avr32-gnu-toolchain-linux_x86_64/lib/io.h
/home/user/avr32-gnu-toolchain-linux_x86_64/lib/include/io.h
/home/user/avr32-gnu-toolchain-linux_x86_64/lib/gcc/io.h
/home/user/avr32-gnu-toolchain-linux_x86_64/lib/gcc/include/io.h
/home/user/avr32-gnu-toolchain-linux_x86_64/lib/gcc/avr32/4.4.7/io.h
/home/user/avr32-gnu-toolchain-linux_x86_64/lib/gcc/avr32/4.4.7/include/io.h
/home/user/avr32-gnu-toolchain-linux_x86_64/lib/gcc/avr32/io.h
/home/user/avr32-gnu-toolchain-linux_x86_64/lib/gcc/avr32/include/io.h
/home/user/avr32-gnu-toolchain-linux_x86_64/avr32/io.h
/home/user/avr32-gnu-toolchain-linux_x86_64/avr32/include/io.h
Der Compiler sagt trotzdem:
error: avr32/io.h: No such file or directory
Der gcc selber hat doch intern die Verzeichnis-Struktur schon vorgeben, von wo aus er nach dem Wurzelverzeichnis/bin etwas findet. Ich habe das an verschiedenen Stellen nachgelesen. Sobald er die ausführbare (/bin) findet, weiß er, wo der Rest zu finden ist. Sonst würde ja nicht diese Ausgabe kommen:
#include "..." search starts here:
#include <...> search starts here:
/home/user/avr32-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr32/4.4.7/include
/home/user/avr32-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr32/4.4.7/include-fixed
/home/user/avr32-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr32/4.4.7/../../../../avr32/include
Ich habe auch einige Diskussionen in anderen Foren über das Thema nachgelesen. Da wude z.B folgendes erklärt, nachdem jemand ebenfalls die io.h vermisste (aus dem Jahre 2012):
---
I'm trying to compile a very simple application using the AVR32-gnu-toolchain for x86_64. The target is an evk1105 with an uc3a0512 onboard. Problem being is that the toolchain seems to lack the avr32/io.h!
---
Die Antwort drauf ist ganz simple:
---
On Linux and Mac OS X you have to download and unzip header files separately into the Toolchain installation directory, $TOOLCHAIN/avr32/include.
---
Voila, und es hat bei ihm funktioniert. Dort ist es mir aber auch. Kann es sein, dass es da ein Problem mit der aktullen Toolchain gibt, oder ist das Brett vor meinem Kopf so unermesslich groß?
Michael
GELÖST - GNU Toolchain - #include <io.h> wird nicht gefunden
-
- Beiträge: 11
- Registriert: 11.02.2011 03:05:50
GELÖST - GNU Toolchain - #include <io.h> wird nicht gefunden
Zuletzt geändert von CaptainStone am 06.04.2014 04:52:19, insgesamt 1-mal geändert.
Re: GNU Toolchain - #include <io.h> wird nicht gefunden
Anscheinend findet gnu-avr32 den <io.h> nicht, das besagt ja die Fehlermeldung.On Linux and Mac OS X you have to download and unzip header files separately into the Toolchain installation directory, $TOOLCHAIN/avr32/include.
---
Voila, und es hat bei ihm funktioniert. Dort ist es mir aber auch. Kann es sein, dass es da ein Problem mit der aktullen Toolchain gibt, oder ist das Brett vor meinem Kopf so unermesslich groß?
Da du ja wie oben beschrieben alle Headerdateien separat runtergeladen und im Verzeichnis TOOLCHAIN/avr32/include untergebracht(entpackt) hast, müsste der Compiler nach erneutem kompilieren diesen Header finden.Es könnte sein, dass es mittlerweile umbenannt ist z.B: io oder iostream etc. Musst halt mal ein Blick in die TOOLCHAIN/avr32/include werfen Und auch beim einbinden der Headerdatei im Quellcode die Headerdatei so einbinden: #include <io.h> anstatt #include "io.h", zweite Variante sucht die Headerdatei im aktuellen Verzeichnis, während die erstere "verzeichnisübergfreifend" in allen Verzeichnissen nach der Headerdatei sucht.
/ASUS-F751S/ Intel Pentium N3710 @ 2.560Ghz
VGA compatible controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics Controller (rev 35)
Linux/5.19.13-arch1-1 x86_64 GNU/Linux
WindowManager: BSPWM
VGA compatible controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics Controller (rev 35)
Linux/5.19.13-arch1-1 x86_64 GNU/Linux
WindowManager: BSPWM
-
- Beiträge: 3
- Registriert: 23.03.2014 13:48:52
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rheinland
Re: GNU Toolchain - #include <io.h> wird nicht gefunden
Hi,
laut http://www.atmel.com/Images/avr32-gnu-t ... readme.pdf (Punkt Layout) solltest Du den avr32 Ordner aus den Headerdateien unter avr32-gnu-toolchain-linux_x86_64/avr32/include/ ablegen. Der vollständige Pfad zur io.h wäre dann: /home/user/avr32-gnu-toolchain-linux_x86_64/avr32/include/avr32/io.h
Zumindestens konnte ich vorhin so ein kleines Testprogramm compilieren.
Viele Grüße,
Frank
laut http://www.atmel.com/Images/avr32-gnu-t ... readme.pdf (Punkt Layout) solltest Du den avr32 Ordner aus den Headerdateien unter avr32-gnu-toolchain-linux_x86_64/avr32/include/ ablegen. Der vollständige Pfad zur io.h wäre dann: /home/user/avr32-gnu-toolchain-linux_x86_64/avr32/include/avr32/io.h
Zumindestens konnte ich vorhin so ein kleines Testprogramm compilieren.
Viele Grüße,
Frank
-
- Beiträge: 11
- Registriert: 11.02.2011 03:05:50
Re: GNU Toolchain - #include <io.h> wird nicht gefunden
Servus Frank,
Michael
vielen Dank! Ich hatte es tatsächlich übersehen, dass im /include Verzeichnis NOCHMAL ein Verzeichnis mit 'avr32' angelegt werden muss. Jetzt klappt's - bin happy und kann nun den AVR32 über EMACS als IDE programmierenjackycola hat geschrieben: /home/user/avr32-gnu-toolchain-linux_x86_64/avr32/include/avr32/io.h
Frank
Michael