Gast
#4200829
Ich möchte eine vorkompilierte Datei aus STEmwin in mein Projekt einbinden, bekomme aber:
1 | |
2 | |
3 | |
4 | |
Anbei ein Bild. Was mache ich falsch?
|
Anzeige
|
Linker findet Datei nicht
Gast
#4200829
Ich möchte eine vorkompilierte Datei aus STEmwin in mein Projekt einbinden, bekomme aber:
Anbei ein Bild. Was mache ich falsch?
Gast
#4200862
>cannot find -lSTemWin526_CM4_GCC.a
Benenne die Datei mal um in
libSTemWin526_CM4_GCC.a
und dann bei -l nur
STemWin526_CM4_GCC
angeben.
Gast
#4200871
Volltreffer! Woher hast'n das gewußt? Sowas weiß man einfach... Oliver :-) Das ist normal auf Unix Systemen (und hier kann das gcc-System seine Herkunft nicht verleugnen) Irgendjemand dachte mal, dass es eine gute Idee wäre, dass Libraries immer mit dem Prefix 'lib' anfangen sollen. Und weil das immer so sein soll, lässt man diesen Prefix in der Command Line beim Linker Aufruf weg. Teilt man also dem Linker mit, dass der die Mathe-Library namens libm.a mit dazulinken soll, dann gibt man zb. bei gcc in der Command Line ein -lm an. Das '-l' ist die Angabe, dass jetzt der Name eine Library folgt und das 'm' ist das was übrig bleibt, wenn man von "libm" das 'lib' weglässt. Gibt man hingegen ein -lIrgendwas an, dann sucht der Linker nach einer Datei "libIrgendwas.a".
Gast
#4201991
Hätte man sicherlich auch im Handbuch nachschlagen können. Aber wenn man so einer Anomalie halt das erste mal direkt ausgesetzt ist... ich wär' da nie drauf gekommen. Diese libm.a-Geschichte hatte ich noch dunkel im Hinterkopf, aber hab' auch da nie verstanden warum das so zerfleddert-kryptisch angegeben wird... so ist's halt, wenn man sich's leicht macht und gedankenlos die Zeilen anderer übernimmt... ,-) Danke für die Info. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|