mikrocontroller.net

Forum: Compiler & IDEs Problem beim einfügen von .a-Datein aus Library im AVRStudio


Autor: Christoph P. (sirbundy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!
Ich habe folgendes kleines Problem: Beim Versuch verschiedene .a-Datein 
aus einer Bibliothek ins Projekt einzufügen, bekomme ich den Error, dass 
die betreffenden Datein nicht zu finden seien. Bei anderen gibt es 
wiederrum keine Probleme.

"d:/programme/winavr-20081205/bin/../lib/gcc/avr/4.3.2/../../../../avr/b 
in/ld.exe:  cannot find -l-llibConfigServer"

Allerdings sind Bibliothekspfade und Objektnamen 100x überprüft wurden 
und stimmen. Komisch ist nur, dass die Pfade in den Configuration 
Options nach dem Eingeben und Bestätigen zum Teil nachträglich wie "von 
Geisterhand" doppelt eingetragen sind.

Hab weder hier noch woanders irgend nen Hinweis auf nen denkbaren Fehler 
gefunden oder nen AVRStudio-Bug.

Vielleicht weiß ja jemand weiter. Danke!

Autor: Olli R. (omr) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christoph P. schrieb:

> Ich habe folgendes kleines Problem: Beim Versuch verschiedene .a-Datein
> aus einer Bibliothek ins Projekt einzufügen, bekomme ich den Error, dass
> die betreffenden Datein nicht zu finden seien. Bei anderen gibt es
> wiederrum keine Probleme.

Pfade zu lang, Sonderzeichen oder Umlaute drin?

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Allerdings sind Bibliothekspfade und Objektnamen 100x überprüft wurden
>und stimmen.

-l-llibConfigServer sieht komisch aus. Verdammt viele l's. Und -l- kennt 
zumindest meine Doku nicht als gültige Option. Das sieht aus, als ob da 
ein -l zuviel ist.

Die Namenskonvention besagt ausserdem, daß die Datei für 
-llibConfigServer liblibConfigServer.a heißen muß. Heißt die auch so?

Oliver

Autor: Christoph P. (sirbundy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also an den Pfaden liegt es nicht, die Namenskonvention wurde auch 
eingehalten.
Der Hinweis mit dem doppelten -l ist aber schon mal richtig. Eine Datei 
davor wird scheinbar gar nicht erst "angenommen". Im makefile steht sie 
nämlich nicht drin. Dadurch das leere -l. Sehr komische Sache. Eine 
andere Datei aus dem selben Ordner wird nämlich eingefügt. Das versteh 
ich wirklich nicht.
Noch eine andere Frage: Werden für .o-Datein auch die Bibliothekspfade 
von LIBDIRS verwendet und durchsucht, oder gibt es da noch etwas wie 
OBJDIRS o.ä.?

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pfade, in denen nach Libs gesucht wird, werden mit -L angegeben, und es 
gibt eine Umgebungsvariable LD_LIBRARY_PATH.

Zeug wie OBJDIRS entspringen einzig und allein deinem Makefile, mit dem 
Linker selbst hat das zunächst überhauptnix zu tun.

Um Fehler im Makefile auszuschliessen, mache also den Aufruf des 
Linklaufs direkt von der Shell aus.

Bisher war dieser Aufruf hier noch nicht zu sehen.

Johann

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Um Fehler im Makefile auszuschliessen, mache also den Aufruf des
>Linklaufs direkt von der Shell aus.

Die AVR-Studio das makefiles sind i.d.R. in Ordnung, das da der Eintrag 
einer lib fehlt, ist ja schon geklärt.

Wenn gar nichts geht, nimm halt das vom Studio erzeugte makefile, nenn 
es um, trag die fehlende lib per hand nach, und definiere das makefile 
für das Projekt als externes makefile.

Wie heisst denn die lib, die da nicht eingetragen wird?

Oliver

Autor: Christoph P. (sirbundy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, ich danke euch erstmal für die Hilfe!
Ich hab mir jetzt ein wenig den Rat von Oliver zu Herzen genommen. Zwar 
hat die das Anpassen des makefiles per Hand auch nicht den gewünschten 
Erfolg gebracht, aber dafür das Verwenden eines makefiles eines 
Projektes, welches die selben Bibliotheken benutzt. Nun bin ich zwar 
immernoch nicht schlauer wo der Fehler lag, aber ein vorgefertigtes und 
funktionierendes make samt configuration lässt sich natürlich wesentlich 
einfacher auf seine Bedürfnisse anpassen :)
Also, nochmal vielen Dank für eure Mühe!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.