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
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
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
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
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.