Forum: Mikrocontroller und Digitale Elektronik Atmel Studio 6 - Probleme mit #include


von Anton (Gast)


Lesenswert?

Hallo,

ich habe ein Problem beim einbinden von Bibliotheken im Atmel Studio 6 
und weiß nich mehr weiter.

Ich habe bei einer älteren Version von Atmel Studio 6 versucht 
Funktionen auszulagern aber bin gescheitert. Nun habe ich die aktuelle 
Version von AS installiert und nun klappt nicht mal das einbinden von 
io.h

Die Fehlermeldung lautet: 'io.h:no such file or directory'

Das einbinden sieht bei mir so aus:
#include <avr/io.h>
#include <C:/Users/t00n/Documents/Atmel Studio/Vapo_a_0/Vapo_a_0/pwm.c>

System:
-Windows Proffessional x64
-Atmel Studio 6, Version 10.0.0.30 - GCC 4.6.1

Die Dateien sind alle in "C:\Program Files (x86)\Atmel\Atmel Studio 
6.0\extensions\Atmel\AVRGCC\3.4.0.65\AVRToolchain\avr\include" mit 
sicherheit vorhanden.

Ich habe schon versucht <> durch "" zu ersetzen und / durch \
Außerdem habe ich versucht io.h mit dem Kompletten Dateipfad 
einzubinden, was ebenfalls zu der Fehlermeldung führt.

Hat jemand eine Idee was ich noch versuchen kann?
Schonmal danke für eure Hilfe.

Gruß
Anton

von Achim M. (minifloat)


Lesenswert?

Anton schrieb:
> Hat jemand eine Idee was ich noch versuchen kann?

Umgebungsvariablen setzen? mfg mf

von Daniel (Gast)


Lesenswert?

Du musst die Dateien (*.c u. *.h) noch im solution Explorer hinzufügen ( 
bestehende Dateien hinzufügen)

von Anton (Gast)


Lesenswert?

Ah, dort! Vielen dank, das hat mir sehr geholfen.

Vielen dank- manchmal braucht man auch bei solchen simplen Dingen einen 
Schubs in die richtige Richtung :)

Das nächste mal bekommt Ihr wieder eine interessantere Frage! ;)

lg
Anton

von Sigi M. (sigim)


Lesenswert?

Und was mache ich wenn ich die Fehlermeldung trotzdem kriege, obwohl sie 
im Solution Explorer drin liegt?

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

1) pwm.c ist harantiert kein Systemheader -> "" anstatt <>

2) pwm.c ist warscheinlich nichtmal ein Header...

3) In include ist Pfadtrenner ein / und kein \

4) Man gibt keine absoluten Pfade in #include an
  Überleg die einen vernünftigen Include-Verzeichnis,
  übergib das mit -I dem Compiler und dann zB
     #include "Vapo_a_0/pwm.c"

5) Lass die Includepfade mit -v anzeigen und überprüfe sie

6) Wer gibt das "io.h:no such file or directory" aus?
   Da steht noch mehr, nämlich wo das includet wird.
   Wenn die Zeile #include <avr/io.h> ist, dann ist deine
   Installation kaputt oder du verwendest einen falschen
   Compiler.

von Sigi M. (sigim)


Lesenswert?

Ich sollte vielleicht ausführlicher werden.
Also ich hab mir aus den Beispielprogrammen die Struktur mit den 
Unterordner und Dateien die ich für mein Projekt brauche 
zusammenkopiert.
Nun wollte ich ein Build Solution machen und kriege den Fehler:

ctrl_access.h:No such file or directory

aber die Datei ist ja vorhanden und mit #include "ctrl_access.h" 
eingebunden...in den Beispielen funktioniert es ja auch und ich habe am 
Code nichts geändert.

von Christoph A. (paul87)


Lesenswert?

Ich habe genau das gleiche Problem.

@Sigi Maier: Hast du das Problem lösen können?

von Thomas E. (thomase)


Lesenswert?

Sigi Maier schrieb:
> aber die Datei ist ja vorhanden und mit #include "ctrl_access.h"
> eingebunden...
Aber nicht im "Include File Search Path" eingetragen.

mfg.

von Sigi M. (sigim)


Lesenswert?

Also nach ewigem rum probieren hab ich die Lösung.

Bei diesen dämlichen Entwicklungsumgebungen, bei denen alles 
automatisiert ist, machen es unmöglich die vorgefertigten header und 
c-files manuell einzubinden. Man muss hier über den "ASF Wizard" die 
Dateien einbinden (Graues Symbol mit 3 weißen Quadraten). Da kann man 
sich dann die Module die man für sein Projekt benötigt auswählen und es 
wird automatisch alles eingebunden und #include´s eingefügt.
Ich find das allerdings nicht besonders toll...

von Night (Gast)


Lesenswert?

Ein alter Thread, aber mein anfänglich ähnlich aussehendes Problem 
konnte ich anders lösen. Ev. hilft dies jemandem.

Nach dem Include einer Library Kombinierte mein Projekt nicht mehr. 
Problem war, dass ich in meinem Projekt .c Dateien erstellte anstelle 
.cpp. Da die Lib C++ Objekte einsetzte, war hier Endstation. Dateien in 
.cpp umbenennen löste mein Problem.

von Christian (Gast)


Lesenswert?

Danke! Das hat geholfen. Habe Tagelang gesucht. Verstehe es zwar noch 
nicht, aber das bekomme ich auch noch raus ;)

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.