PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Asuro-Compile Error - undefined reference to StatusLED



Phibedy
13.10.2012, 21:17
Guten Abend,
ich habe bereits ein par kleine programme mit einem "normalen" atmega8 geschrieben, da ich von Elektrotechnik noch nicht so extrem viel Ahnung habe und kein Bauteilgrab eröffnen wollte, habe ich mir den Asuro gekauft. Jedoch verwirren mich gerade einige online-beiträge zu atmlstudio 6.
Ich habe probleme mit den inline funktionen:
LINK: http://www.bilder-space.de/show_img.php?img=cbca87-1350163175.jpg&size=original
als lib benutze ich: http://sourceforge.net/projects/asuro/files/AsuroLib/AsuroLib V2.8.0/
Wobei ich die exe ausgeführt habe und mich nun wundere, ob die lib sich von alleine eingebunden hat? Ich glaube dort liegt mein Fehler, google wirft mir aber leider trotzdem nichts aus, was ich anders tun soll.
Makefile habe ich gelesen, dass man den "standard" benutzen kann und nicht den von der CD benötigt.
Zudem benutze ich die asuro.cpp und asuro.h aus dem tutorial von der CD.
Es muss ein sau blöder kleiner Fehler sein, bei dem man sich danach an den Kopf fasst und denkt, "oh mann".
Ich bin mir relativ sicher, dass es an einem der genannten dinge liegen muss, aber ich finde einfach keinen link, der mir sagt, wie ich es anders tun könnte :)

Edit: Output:
Build:
------ Build started: Project: GccApplication2, Configuration: Debug AVR ------
Build started.
Project "GccApplication2.cproj" (default targets):
Target "PreBuildEvent" skipped, due to false condition; ('$(PreBuildEvent)'!='') was evaluated as (''!='').
Target "CoreBuild" in file "C:\Program Files (x86)\Atmel\Atmel Studio 6.0\Vs\Compiler.targets" from project "C:\Users\Phibedy\Documents\Atmel Studio\GccApplication2\GccApplication2\GccApplicat ion2.cproj" (target "Build" depends on it):
Using "RunCompilerTask" task from assembly "C:\Program Files (x86)\Atmel\Atmel Studio 6.0\Vs\Compiler.Task.dll".
Task "RunCompilerTask"
C:\Program Files (x86)\Atmel\Atmel Studio 6.0\make\make.exe all
Building target: GccApplication2.elf
Invoking: AVR/GNU Linker : (AVR_8_bit_GNU_Toolchain_3.4.0_663) 4.6.2
"C:\Program Files (x86)\Atmel\Atmel Studio 6.0\extensions\Atmel\AVRGCC\3.4.0.65\AVRToolchain\ bin\avr-gcc.exe" -o GccApplication2.elf asuro.o GccApplication2.o -Wl,-Map="GccApplication2.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -mmcu=atmega8
GccApplication2.o: In function `main':
C:\Users\Phibedy\Documents\Atmel Studio\GccApplication2\GccApplication2\Debug/.././GccApplication2.c(15,1): undefined reference to `StatusLED'
collect2: ld returned 1 exit status
make: *** [GccApplication2.elf] Error 1
Done executing task "RunCompilerTask" -- FAILED.
Done building target "CoreBuild" in project "GccApplication2.cproj" -- FAILED.
Done building project "GccApplication2.cproj" -- FAILED.

Build FAILED.
========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========

General:
23:12:07: [WARNING] The device [atmega8] is not supported in ASF Version [3.1.3] that is used in the project GccApplication2
Das sieht mir auch irgendwie Fehlerhaft aus. Habe vorher nur mit microcontroller in Assembler ein bisschen rum gespielt und c++ für anderes.
Irgenwas mach ich wohl grundlegend falsch :)

liebe Grüße

Kampi
13.10.2012, 22:21
Hey,

das Bild ist leider recht klein. Da erkennt man kaum was.

Phibedy
13.10.2012, 23:20
Oh sry, habe nicht bemerkt, dass der das automatisch runter rendert, habe es nun extern hochgeladen:
http://www.bilder-space.de/show_img.php?img=cbca87-1350163175.jpg&size=original
liebe Grüße

radbruch
13.10.2012, 23:21
Hallo

Gleich vorweg: Ich verwende die aktuelle Version der Library nicht.

Sehr informativ scheint mir der Inhalt der Datei install.txt zu sein, hier mal ein Ausschnitt:


Verzeichnis Struktur
--------------------
Nach der Installation befindet sich folgende Verzeichnis Struktur auf der Festplatte.
Das Installationsverzeichnis im folgenden <INST_DIR> genannt, könnte z.B. C:/ASURO_SRC/AsuroLib lauten.

C:\ASURO_SRC\AsuroLib Das Installations Verzeichnis
\doc Dokumentations Verzeichnis. HTML und HTML Help Dateien
\lib Bibliotheks Quell Dateien und Objekt Bibiothek
\lib\inc Bibliotheks Header Dateien
\examples Beispiel Projekte
\examples\FirstTry Beispiel Projekt FirstTry
\examples\SelfTest Beispiel Projekt SelfTest


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

# additional Include path for libraries
LIBPATH = ../../lib


In vorigen Beipiel wurden relative Pfade verwendet. Das geht solange gut, solange alle Projekte wie die Beispiel Projekte aus der
Asuro Lib in der gleichen Verzeichnisebene (2 Verzeichnisebenen tiefer als die lib) liegen.
Ist dies nicht der Fall, sollte man statt dessen absolute Pfade verwenden, wie z.B.:

# additional Include path for libraries
LIBPATH = C:/ASURO_SRC/AsuroLib/lib


Falls man die Bibliothek in ein Verzeichnis mit Leerzeichen installiert hat, muß man die Pfadangaben in Hochkommas einfügen

# additional Include path for libraries
LIBPATH = "C:/Eigene Dateien/ASURO_SRC/AsuroLib/lib"


Zeig uns mal deinen Installationspfad und die betreffende Stelle in deinem Makefile.

Gruß

mic

P.S.: ... und aktiviere die Anzeige der Dateiendungen.

Phibedy
13.10.2012, 23:51
Dann dürfte dort der fehler liegen?
Also muss ich dort den Pfad für das Makefile, was ich im bild markiert habe eingeben?
23459
Danke für die schnelle antwort :)