Probleme beim linken mit Codesourcery + Eclipse + EK-LM3S8962

Gast #2353827
Lesenswert?

Hallo

ich versuche schon seit Tagen die folgende Fehlermeldung auf meinen 
HelloWorld Projekt zu beseitigen aber bis jetzt ohne Erfolg:

'Building target: HelloWorld.elf'
'Invoking: ARM Sourcery Windows GCC C Linker'
arm-none-eabi-gcc 
-T"D:\Microcontroladores\Beispiele\Luminary\HelloWorld\hello.ld" 
-nostartfiles -L"C:\Program Files\StellarisWare\driverlib\gcc" 
-Wl,-Map,HelloWorld.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 
-o"HelloWorld.elf"  ./hello.o ./startup_gcc.o
./hello.o: In function `main':
D:\Microcontroladores\Beispiele\Luminary\HelloWorld\Debug/../hello.c:66: 
undefined reference to `SysCtlClockSet'
D:\Microcontroladores\Beispiele\Luminary\HelloWorld\Debug/../hello.c:71: 
undefined reference to `RIT128x96x4Init'
D:\Microcontroladores\Beispiele\Luminary\HelloWorld\Debug/../hello.c:76: 
undefined reference to `RIT128x96x4StringDraw'
collect2: ld returned 1 exit status
cs-make: *** [HelloWorld.elf] Error 1

Ich konnte ein erstes Beispiel (Blinky.c) compilieren und linken aber 
beim 2 Beispiel ist die obere Fehlermeldung aufgetaucht. Eclipse 
generiert das Makefile selber. Ich habe alle Links mehrmals geprüft und 
erscheinen in Ordnung zu sein. Mein Gefühl nach, den Compiler findet die 
Library libdriver von Luminary nicht, obwohl den Pfad unter "settings" 
--> Arm Sourcery Windows GCC C Linker --> Libraries unter Library search 
path (-L) als "C:\Program Files\StellarisWare\driverlib\gcc eingegeben 
ist.
Kann mir jemand ein Tip geben? Ich wäre sehr dankbar.
Schöne Grüsse aus Argentinien
Pablo
Gast #2353847
Lesenswert?

Hallo

besten Dank für die Antwort. In wirklichkeit ist die StellarisWare unter 
C:\Programme\StellarisWare\driverlib\gcc gespeichert. Ich weiss es nicht 
genau, warum den Compiler den Pfad mit C:\Program Files... übernohmen 
hat. Ich habe den Pfad geändert und erhielt die gleiche Fehlermeldung.

Irgendeine andere Idee?

Pablo
Gast #2354189
Lesenswert?

Pablo schrieb:
> Mein Gefühl nach, den Compiler findet die
> Library libdriver von Luminary nicht, obwohl den Pfad unter "settings"
> --> Arm Sourcery Windows GCC C Linker --> Libraries unter Library search
> path (-L) als "C:\Program Files\StellarisWare\driverlib\gcc eingegeben
> ist.

Den Pfad angeben reicht nicht, du musst schon noch die lib selber 
angeben. Davon ist in dem Linkeraufruf nichts zu sehen.

Olilver
Gast #2354261
Lesenswert?

Hallo

Vielen Dank für deine Antwort.

Ich habe den Pfad mit dem Datei libdriver.a angegeben und zwar unter 
"settings"--> Libraries(-l). Jetzt der Linker gib mir einen neuen 
Fehler:

'Building target: HelloWorld.elf'
'Invoking: ARM Sourcery Windows GCC C Linker'
arm-none-eabi-gcc 
-T"D:\Microcontroladores\Beispiele\Luminary\HelloWorld\hello.ld" 
-nostartfiles -L"D:\Microcontroladores\StellarisWare\driverlib\gcc" 
-Wl,-Map,HelloWorld.map -ldriver -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 
-o  "HelloWorld.elf"  ./hello.o ./startup_gcc.o 
-l"D:/Microcontroladores/StellarisWare/driverlib/gcc/libdriver.a"
c:/program files (x86)/codesourcery/sourcery g++ 
lite/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/bin/ld 
.exe:  cannot find 
-lD:/Microcontroladores/StellarisWare/driverlib/gcc/libdriver.a
collect2: ld returned 1 exit status
cs-make: *** [HelloWorld.elf] Error 1

Er findet scheinbar die Library nicht, ist das korrekt? Der Pfad ist 
richtig eingestellt.
Wer hat noch eine Idee?

Pablo
Gast #2354334
Lesenswert?

Hallo

wenn du genau hinschaust, ist -ldriver in der Linkerzeile:

'Building target: HelloWorld.elf'
'Invoking: ARM Sourcery Windows GCC C Linker'
arm-none-eabi-gcc
-T"D:\Microcontroladores\Beispiele\Luminary\HelloWorld\hello.ld"
-nostartfiles -L"D:\Microcontroladores\StellarisWare\driverlib\gcc"

-Wl,-Map,HelloWorld.map -ldriver -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2

-o  "HelloWorld.elf"  ./hello.o ./startup_gcc.o
-l"D:/Microcontroladores/StellarisWare/driverlib/gcc/libdriver.a"

Was könnte noch sein?

Danke

Pablo
Gast #2354360
Lesenswert?

Hallo Oliver

die Zeile habe ich eingefügt und zwar in Eclipse unter "Project 
properties" --> Settings --> ARM Sourcery Windows GCC Linker --> 
Libraries --> dort kannst du 2 Dinge angegeben:
Libraries(-l) und Library search path(-L).
Unter Libraries(-l) habe ich angegeben: 
D:\Microcontroladores\StellarisWare\driverlib\gcc\libdriver.a
Unter Library search path(-L) habe ich angegeben: 
D:\Microcontroladores\StellarisWare\driverlib\gcc

Darf diesen Aufruf nicht dorthin stehen?

Besten Dank

Pablo
Gast #2354580
Lesenswert?

Hallo Oliver

nochmals vielen Dank. Mit deiner Hilfe konnte bis jetzt ein Error 
weniger erzeugen. Ich habe das Wort "driver" eingefügt und -ldriver 
wegnommen und siehe da, den ersten Fehler ist 
verschwunden(`SysCtlClockSet'). Jetzt aber habe ich noch diesen Fehlern:

'Building target: HelloWorld.elf'
'Invoking: ARM Sourcery Windows GCC C Linker'
arm-none-eabi-gcc 
-T"D:\Microcontroladores\Beispiele\Luminary\HelloWorld\hello.ld" 
-nostartfiles -L"D:\Microcontroladores\StellarisWare\driverlib\gcc" 
-L"D:\Microcontroladores\StellarisWare\grlib\gcc" 
-Wl,-Map,HelloWorld.map -mcpu=cortex-m3 -mthumb -g3 -gdwarf-2 -o 
"HelloWorld.elf"  ./hello.o ./startup_gcc.o   -ldriver -lgr
./hello.o: In function `main':
D:\Microcontroladores\Beispiele\Luminary\HelloWorld\Debug/../hello.c:71: 
undefined reference to `RIT128x96x4Init'
D:\Microcontroladores\Beispiele\Luminary\HelloWorld\Debug/../hello.c:76: 
undefined reference to `RIT128x96x4StringDraw'
collect2: ld returned 1 exit status
cs-make: *** [HelloWorld.elf] Error 1

Es geht um dem Display des EVK. Ich finde nirgendwo eine Library dafür, 
aber habe ich probiert mit der Library "grlibrary" und hat es nicht 
funktioniert.
Hast du vielleicht da eine Ahnung?

Besten Dank

Pablo
Gast #2354661
Lesenswert?

Hallo Oliver

besten Dank für deine Antwort. Vielleicht habe ich das übersehen, oder 
vielleicht von soviel lesen, sehe ich das Wesentliche nicht mehr. Ich 
würde nicht fragen, wenn ich selber das ganze machen könnte. Manchmal 
von soviele Bäume sieht man den Wald nicht mehr. Ich probiere's 
weiter...

Grüess

Pablo
Gast #2354719
Lesenswert?

Oliver

vielen Dank. Ich war gerade dabei die Seite von TI auseinander zu nehmen 
und habe genau die Info gefunden, die du mir geschickt hast. Es 
funktioniert alles.

Besten Dank nochmals für deine Zeit und Geduld.

Viele Grüsse aus Argentinien

Pablo

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