Hallo,
ich fange gerade mit der Software für ein kleines Projekt an. Dazu
benutze ich eine Lib die ich bereits öfters im Einsatz hatte, aber noch
unter AVR Studio 5. Bisher hatte ich nie Probleme, aber entweder ist mir
bei den Includes und Definitionen im Hauptprogramm (siehe
Grow-O-Matic.c) ein blöder Fehler unterlaufen, oder aber beim linken
läuft etwas da ich die Funktionen
ds1820_init()
ds1820_read_temp()
nicht aufrufen kann. Da beim Compilieren jedesmal der Fehler Undefined
reference erscheint.
Hier die Meldungen aus dem AtmelStudio 6
1
------ Rebuild All started: Project: Grow-O-Matic, Configuration: Debug AVR ------
2
Build started.
3
Project "Grow-O-Matic.cproj" (ReBuild target(s)):
4
Target "PreBuildEvent" skipped, due to false condition; ('$(PreBuildEvent)'!='') was evaluated as (''!='').
5
Target "CoreRebuild" in file "C:\Program Files (x86)\Atmel\Atmel Studio 6.0\Vs\Compiler.targets" from project "F:\Atmel Studio\Grow-O-Matic\Grow-O-Matic\Grow-O-Matic.cproj" (target "ReBuild" depends on it):
6
Task "RunCompilerTask"
7
C:\Program Files (x86)\Atmel\Atmel Studio 6.0\make\make.exe clean all
Johannes schrieb:> ich fange gerade mit der Software für ein kleines Projekt an. Dazu> benutze ich eine Lib die ich bereits öfters im Einsatz hatte, aber noch> unter AVR Studio 5.
Irgendwie glaube ich das nicht so ganz.
Wenn du in deine Sourcen schaust, wirst du feststellen, daß da
tatsächlich nirgends eine Implementierung von ds1820_init() oder von
ds1820_read_temp() zu finden ist. Da fehlt also (mindestens) eine
Sourcedatei, oder eine lib (libxxx.a). Wenn du das im Studio 5 schon mal
ans laufen gebracht hast, solltest du das eigentlich wissen.
Oliver
Oliver schrieb:> Irgendwie glaube ich das nicht so ganz.>> Wenn du in deine Sourcen schaust, wirst du feststellen, daß da> tatsächlich nirgends eine Implementierung von ds1820_init() oder von> ds1820_read_temp() zu finden ist. Da fehlt also (mindestens) eine> Sourcedatei
:/
Ich hab vergessen die passende Sourcedatei mit hoch zu laden. Da sind
natürlich beide Funktionen Implementiert, nachdem sie zuvor bereits in
ds18x20lib.h definiert wurden.
Die Sourcen nützen aber nur dann was, wenn Du sie compilierst und den
Compileroutput dem Linker vorwirfst.
Deine Linkerkommandozeile aber enthält kein Indiz dafür, daß Du das
tust:
Da müsste neben "Grow-O-Matic.o" noch ein "ds18x20lib.o" auftauchen,
oder aber (was der Name Library suggeriert) ein -lirgendwas.
Warum eigentlich nennen so viele Leute Dinge Library, die gar keine
sind?
Rufus Τ. Firefly schrieb:> Deine Linkerkommandozeile aber enthält kein Indiz dafür, daß Du das> tust:
Danke schon mal für den Hinweis. Das erklärt ziemlich gut warum eben die
externen Funktionen nicht "gefunden" werden.
Ich lass das aber alles von dem Atmel Studio 6 erledigen, was muss ich
nun ändern in den Projekteinstellungen damit er diese Files auch
berücksichtigt?
Ich bin erst vor kurzen auf das Atmel Studio 6 umgestiegen und komm
bisher mit der Bedienung noch nicht so gut zu recht.
Ich wäre für Hilfe sehr Dankbar.
Lg Johannes
Die Bedienung ist absolut identisch zum Studio 5. Du musst alle
Sourcedateien schon in den Solutionordner in der Projektansicht stecken,
dann werden die auch alle berücksichtigt.
Oliver