wie überprüfe ich, welche BFD-Version ich verwende?

wie überprüfe ich, welche BFD-Version ich verwende?

gccBeim Ausführen des Befehls auf einem Linux-Rechner ist mir ein Fehler begegnet , und als ich den Fehler gegoogelt habe, habe ich herausgefunden bfd, dass Leute sagen, er sei in einer neueren Version der Bibliothek behoben worden. Bei weiterer Suche habe ich herausgefunden, dass es bfdsich möglicherweise um eine statische Bibliothek handelt, mit der gccbeim Erstellen eine Verknüpfung hergestellt wurde, und nicht um eine gemeinsam genutzte dynamische Bibliothek, aber da bin ich mir nicht sicher.

Wie finde ich heraus, ob gccich eine statische oder eine dynamische Version verwende bfdund welche Version von bfd?

Antwort1

BFD ist die Bibliothek, die von Programmen verwendet wird, aus denen die Binutils von GNU bestehen, zu denen unter anderem ld, gold, und gehören as. Sie werden normalerweise in einem Paket namensBinärdateienUndbinutils-dev(Debian und Freunde) oderbinutils-devel(Fedora/RHEL). Sie können jedes der oben genannten Programme mit einem -VSchalter ausführen, um seine Versionsnummer abzurufen. Sie können verwenden, readelfum ihre Abhängigkeiten aufzulisten. So listen Sie die Abhängigkeiten ldeinschließlich ihrer Typen auf:

readelf -d `which ld`

Dynamic section at offset 0xc900c contains 28 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libbfd-2.22-system.so]
 0x00000001 (NEEDED)                     Shared library: [libz.so.1]
 0x00000001 (NEEDED)                     Shared library: [libdl.so.2]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]

Ich bin mit der Funktionsweise von GCC nicht sehr vertraut, würde aber sagen, dass der Gedanke, dass GCC jemals mit BFD verknüpft wird, merkwürdig ist.

verwandte Informationen