Atmel Studio Fehler beim Compilieren

Gast #4658036
Lesenswert?
• ▲
▼
Hallo Leute,
Ich habe Atmel-Studio7 installiert und ein Mega8-Projekt angelegt.
Die library libasuro.a und die sieben Headerfiles sind im Projekt 
afgenommen worden.
Die Definitionen adcValue und Init existieren in der Datei asuro.h
aber nach dem Complilieren werden folgende vier Fehlermeldungen 
ausgegeben:

ld returned 1 exit status            File:collect2.exe
recipe for target 'Test1.elf' failed File:Makefile
undefined reference to `adcValue'    File:adc_low.c
undefined reference to `Init'        File: main.c

// Der Code von main.c ist wie folgt:
#define F_CPU 1000000UL;
#include "asuro.h"
int main(void)
{
  Init();
  LineData(lineData); // Aufgrund dieser Zeile wird 
adcValue-Fehlermeldung
                      // ausgegeben.
  while(1){}
  return(0);
}


Wie kann ich die Fehlermeldungen beseitigen?

Danke und Gruß
Armin
Gast #4658092
Lesenswert?
• ▲
▼
Danke Peter,

Ich habe die libasuro.a dem Linker(unter 
Projekt->Properties->Toolchain->AVR/GNU Linker->Libraries), die library 
unter "Libraries" und den Library-Pfad unter "Library Search Path" mit 
übergeben.
Aber es kommen trotzdem die vier Fehlermeldungen.
Kannst du mir bitte weiterhelfen?

Danke und Gruß
Armin
Gast #4658433
Lesenswert?
• ▲
▼
Danke für die Antwort,

Im Bild(Fehler1.jpg) siehst du auf dem linken Bild die 
Link-Einstellungen und auch dass die libasuro.a im Projekt unter dem 
Ordner Libraries aufgenommen worden ist, auf dem rechten Bild siehst du 
den Quellcode und auch die Fehlermeldungen wieder.

Danke
Armin
Angehängte Dateien:
Gast #4658465
Lesenswert?
• ▲
▼
Kannst du mir bitte schrfeiben wie die Datei heißt?
Ich habe das Library als Referenz im Projekt aufgenommen, so wird alles 
automatisch unter Linker und in Libraries-Projektordner aufgenommen wie 
du in dem Bild gesehen hast.
Ich habe nur libasuro.a und libasuro168.a als Libs soweit ich weiß unter 
dem ASURO-LIB-Verzeichnis.
Gast #4658533
Lesenswert?
• ▲
▼
Doch ich habe doch die libasuro.a im Projekt aufggenommen, das kannst du 
auch im Bild(Fehler1.jpg) sehen.
Ich will nicht die ganzen C-Dateien von Lib im Projekt aufnehmen, dann 
brauche ich das Lib gar nicht.
Ich will mit dem Lib arbeiten, was auch normal ist.
Gast #4658538
Lesenswert?
• ▲
▼
Arwi schrieb:
> Ich will mit dem Lib arbeiten, was auch normal ist.

am PC ja, bei µC meist nicht. Das Problem ist das es sehr viele 
unterschiede innerhalb der Atmels gibt. Dann braucht man für jeden seine 
eigene Lib. Da ist es einfach wenn man direkt die quellen verwenden. So 
mal dort dann besser optimiert (inline) werden kann.

Hast du eine Ausgabe vom Compile vorgang? Steht dort die lib drin? gibt 
es das Symbol adcValue in der lib?

Hast du eventuell C++ und C gemischt?
Gast #4658547
Lesenswert?
• ▲
▼
In der angehängten Datei siehst du die Compilerausgabe.
Deine Meinung ist es besser die C-Dateien direkt ins Projekt 
aufzunehmen?
Wieso existiert dann die Datei libasuro.a ?

Schau bitte unter dem folgenden Link unter dem "Wichtig! Anpassen der 
Makefiles"
http://www.asurowiki.de/pmwiki/pub/html/main.html

Ich versuche so wie beschrieben den Fehler zu beseitigen.
Angehängte Dateien:
Gast #4658563
Lesenswert?
• ▲
▼
In der Datei libausro.o existiert adcValue aber Init nicht!
Die Projektdatei von AtmelStudio hat das Format .cproj, es existiert 
kein Makedatei im Projekt.
Alle Einstellungen sind in der Projektdatei zu finden.

Unetr dem Rubrik"Wichtig! Anpassen der Makefiles" unter dem folgenden 
Link ist die Einstellung in Make-Datei beschrieben, aber ich habe keine 
Make-Datei.
http://www.asurowiki.de/pmwiki/pub/html/main.html

Hat Jemand Compilerproblem bei einem Asuroprojekt mit Atmelstudio ???
Gast #4658573
Lesenswert?
• ▲
▼
Mit libasuro168.a bekomme ich die gleichen Fehlermeldungen.

Auszug von der Seite "http://www.asurowiki.de/pmwiki/pub/html/main.html";

Wichtig! Anpassen der Makefiles

Die wichtigste Änderung der AsuroLib spielt sich im Hintergrund ab in 
den Makefiles. Hier wurde aufgeräumt um die Verwendung der Bibliothek 
für eigene Projekte zu erleichtern. Es gibt nur noch eine einzige 
Stelle, die man ändern muß um alle Pfadangaben, die mit der Lib zu tun 
haben, zu ändern. Das ganze kann natürlich nur funktionieren wenn nur 
noch diese neuen Makefiles verwendet werden.
Aufgrund der zahlreichen Probleme, die manche Nutzer beimn Installieren 
der Bibliothek hatten, wurde der Installationsprozess vereinfacht. Die 
compilierte Asuro Bibliothek 'libasuro.a' muß nun nicht mehr in das 
Lib-Verzeichnis des AVR-GCC bzw. WinAVR Compilers kopiert werden, 
sondern verbleibt im Verzeichnis <INST_DIR>/lib. Statt dessen wird im 
Makefile der Pfad zur Bibliothek eingetragen. Der Verzeichnisname sollte 
mit normalem Slash (/) angegeben sein nicht mit Backslash (\). In den 
aktuellen Makefiles geschieht dies (siehe Examples Ordner) durch 
folgende Zeilen: Hinweis: ein # am Anfang in einer Zeile eines Makefiles 
bedeutet. Dies ist ein Kommentar, kein Kommando zum Ausführen

Das Problem liegt nicht an \ oder /, weil es in der 
AtmelStuio-Projektdatei alle Pfade mit "\" eingegeben worden sind.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren