www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik libranging.a


Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hätte zwei Fragen:
1. weiß jemand was eine *.a - datei ist, bzw. was darin enthalten ist?
2. wie kann ich diese Datei öffnen?

Max

Autor: Thomas Pircher (tpircher) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Max wrote:
> 1. weiß jemand was eine *.a - datei ist, bzw. was darin enthalten ist?

Es ist ein "archive file", eine statitsche Bibliothek. Es ist einfach 
nur eine Sammlung von vorkompilierten object files (*.o).

Unter UNIX ist es ueblich, grosse Projekte in Unterprojekte aufzuteilen 
und die object files eines jeden Unterprojekts in eine separate  *.a 
Datei zu stecken und am Ende diese Bibliotheken zu linken, anstatt alle 
.o files:

$CC -o out.a main.c lib1.a lib2.a ... libn.a

> 2. wie kann ich diese Datei öffnen?

Mit dem Befehl ar, der z.B. in den GNU binutils enthalten ist. Wenn du 
cross-kompilierst, dann heisst der Befehl <arch>-ar, z.B. avr-ar, 
m68hc11-ar etc.

t: Inhalt eines Archivs auflisten
ar t libx.a

x: eXtract files
ar x libx.a

mehr dazu in der manpage zu ar: http://unixhelp.ed.ac.uk/CGI/man-cgi?ar

HTH
Thomas

Edit: Tippfehler

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke dir Thomas,

gibt es auch eine Möglichkeit, dass ich die Bibliothek unter Windows 
öffne?
Und dann gleich meine nächste Frage, kann ich in eine *.o Datei rein 
schauen?
Also worauf ich abziele ist, dass ich diese erwähnte *.a Datei habe und 
sich darin einige Funktion befinden die ich brauche, dafür müsste ich 
diese öffnen.

Max

Autor: Thomas Pircher (tpircher) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also wenn du den Source Code suchst, dann wirst du mit dem *.a file 
hoechstwahrscheinlich nicht gluecklich werden. Das ist compilierter 
Object Code, den du nur als Assembler anschauen kannst.

Um die *.o Dateien zu extrahieren, musst du ein kompatibles "ar" finden, 
am besten das womit das *.a file generiert wurde, denn viele 
Compilerhersteller kochen da ihr eigenes Sueppchen.

Uebrigens, fuer welche Target Plattform ist das *.a file gedacht? Das 
verkompliziert die Sache ein wenig.

Wenn es mit den GNU binutils erstellt wurde, dann musst du einen GCC 
Port fuer Windows suchen. Mit dem ar Befehl kannst du die .o files 
extrahieren und mir dem objdump Befehl den darin enthaltenen Code 
anschauen.

Thomas

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe ein Demoprogramm für ein Entwicklungsboard bekommen, und bei 
diesem sind nicht alle Funktionen in *.c - Dateien drin, sondern leider 
halt in der "libranging.a".
Danke nochmal für deine Antwort. Dann muss ich mir leider die fehlenden 
Funktionen selber prgrammieren.

Max

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.