Hallo, kurz zu mir. Ich bin Baujahr 66, kenne mich sehr gut mit PC und Software aus und versuche seit 2 Wochen Mikrocontroller zu programmieren. In Assembler funktionierte das. Mein Problem besteht darin , das mit Win 10, einem Atmega2560 und Atmel Studio 7 bei einigen C Programmen bei "build" immer wieder vor die Libraries ein -l (kleines L) gesetzt wird. Auch vor Pfadnamen, z. B. aus C:\.... wird dann -lC:\.... aus io.h wird -lio.h (cannot find -lio.h) usw. Logischerweise wird kein Pfad, bzw. keine Lib erkannt. Ich habe ewig gesucht, finde aber das Problem nicht. Bei Examples von Atmel gibt es diese Probleme nicht. Hat jemand eine Ahnung woran das liegen kann. Ich bin kurz vorm Aufgeben. Hab das Atmel Studio 7 schon neu installiert und alle möglichen Pfade eingebunden. Hilft nix! Danke Bernd
Bernd S. schrieb: > Mein Problem besteht darin , das mit Win 10, einem Atmega2560 und Atmel > Studio 7 bei einigen C Programmen bei "build" immer wieder vor die > Libraries ein -l (kleines L) gesetzt wird. Auch vor Du verwechselst Headerdateien und Libraries. Dateien wie "io.h" sind eine Header- oder auch Include-Datei. Diese werden in Dein Programm mit Anweisungen wie #include "io.h" eingebunden. Das geschieht nicht in der Projektverwaltung, da kann man nur den sogenannten "include path" angeben, wenn die Dateien an einem anderen Ort gesucht werden sollen, als an dem, an dem auch Deine Quelltexte liegen. Eine Library ist eine Sammlung bereits compilierter Programmdateien, die vom Linker zum Programm hinzugefügt wird. Libraries heißen je nach verwendetem Compiler/Linker *.a oder *.lib.
Hallo, vielen Dank für die Antwort. Ja, stimmt, ich weiß nicht wie ich jetzt auf Libraries komme. Hab ich wohl verwechselt. Natürlich Header Dateien. Diese sind in main.c auch eingebunden mit z.B. #include <avr/io.h> oder #include "stdlib.h". Die Pfade der Header Dateien sind in den Eigenschaften des Projektes angegeben. Kann man hier zuviele Pfade angeben? Habe alle möglichen eingebunden, da die .h Dateien ja auch nicht alle in einem Ordner installiert werden. Beim compilieren kommen dann die Fehler, cannot find -lio.h und -lstdlib.h. MfG Bernd
Hast du in den Projekteigenschaften die Header-Dateien unter: AVR/GNU Linker->Libraries eingetragen? Das wäre, wie Bernd schon schrieb, falsch, und könnte zu diesem Verhalten führen.
:
Bearbeitet durch User
Simon G. schrieb: > Hast du in den Projekteigenschaften die Header-Dateien unter: > AVR/GNU Linker->Libraries eingetragen? Warum sollte er das? Das Studio ist ready to use. Da wurde nachträglich etwas verändert, so dass das 'l' Bestandteil des Headernamens wird. > Habe alle möglichen eingebunden ... Poste ein einfaches Projekt mit dem Problem.
Danke, muß ich heute abend machen, bin jetzt nicht am PC mit Atmel Studio. Gruß Bernd
Bernd S. schrieb: > Bei Examples von > Atmel gibt es diese Probleme nicht. Was hindert Dich daran, ein Example als eigenes Projekt abzuspeichern? Bernd S. schrieb: > Habe alle möglichen eingebunden, da die .h > Dateien ja auch nicht alle in einem Ordner installiert werden. Man bindet nur die Header ein, die auch benutzt werden. Mit -IVerzeichnis kann man weitere Verzeichnisse zum Suchpfad hinzufügen. Vielleicht hast Du -I mit -l verwechselt.
Lukas schrieb: > Warum sollte er das? Weil er sich damit (noch) nicht auskennt. > Da wurde nachträglich etwas verändert, so dass das 'l' Bestandteil des > Headernamens wird. Da steht was von -l -- also mit einem Minus ("-") davor. So werden aber keine Header-Dateien wie die vom OP angegebene io.h angegeben, sondern Libraries. Da er etwas von "-lio.h" schreibt, liegt der Verdacht nahe, daß er die Header versehentlich als Libraries eingetragen hat.
Lukas schrieb: > Simon G. schrieb: >> Hast du in den Projekteigenschaften die Header-Dateien unter: >> AVR/GNU Linker->Libraries eingetragen? Oh, hab ich tatsächlich gemacht....... Und in der Zeile darüber (augegraute Voreinstellungen stand in etwa Libraries (-Wl,-l). Hab dann versucht das -l wegzubekommen, kann aber nicht verändert werden. Weiß nicht wie ich auf libraries kam..ich lösche heute abend die Einträge und informiere Euch.
Hallo, ich hab jetzt die Header Dateien aus dem Librarie Pfad entfernt und das -l ist erst mal weg. Danke Euch, hatte wohl rotes Gemüse auf den Augen. Es ist aber trotzdem eine Katastrophe mit den ganzen Pfaden. So ein heilloses Durcheinander hatte ich nicht erwartet. Genau beschreiben würde jetzt zu lange dauern. Selbst Header Dateien welche sicher in den verlinkten Pfaden liegen werden nicht gefunden. Win 10 ist hier ganz schlimm. Ich habe einen Pfad c:\Benutzer\Bernd der wird angezeigt als c:\User\Bernd... Programme werden anstandslos in C:\Programmfiles installiert, aber den Ordner Programmfiles gibt es nicht auf C: (auch nicht versteckt). Die sind dann in Programme(x86). Na ja, egal jetzt, wollte nur mal meckern. Für heute gebe ich es auf, keinen Bock mehr. Ich komme gar nicht zum programmieren. Komischerweise hatte ich mit Assembler diese Probleme nicht. Nur Blasen an den Fingern vom vielen Tippen auf der Tastatur. Danke noch mal an alle Beteiligten. Bernd
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.