Als «linker» getaggte Fragen

Der Linker ist Teil der Toolchain zum Erstellen ausführbarer Dateien aus Quellcode, der in kompilierten Programmiersprachen geschrieben wurde. Es nimmt kompilierten Objektcode in mehreren Dateien auf und erzeugt daraus eine einzige "verknüpfte" ausführbare Datei.

4
Kann ich 'rpath' in einer bereits kompilierten Binärdatei ändern?
Ich habe eine alte ausführbare Datei, die für den Schrotthaufen geplant ist, aber sie ist noch nicht da. Es basiert auf einigen Bibliotheken, die aus meiner Umgebung entfernt wurden, aber ich habe einige Stub-Bibliotheken an einem Ort, an dem es gut funktioniert. Ich möchte diese ausführbare Datei auf diese Stub-Bibliotheken …
92 linux  linker  elf 

5
Wie wird die Präferenz des Bibliothekspfads angegeben?
Ich kompiliere ein C ++ - Programm mit g++und ld. Ich habe eine .soBibliothek, die ich beim Verknüpfen verwenden möchte. Es besteht jedoch eine Bibliothek mit dem gleichen Namen in /usr/local/lib, und ldist die Wahl , dass die Bibliothek über das, was ich direkt spezifizieren bin. Wie kann ich das …
91 c++  linker  g++ 


1
Was ist der Unterschied zwischen -rpath und -L?
gccund ldbieten viele Möglichkeiten, einen Suchpfad für Bibliotheken anzugeben, darunter die Flags -rpathund -L. Die Manpages zeigen keine Unterschiede zwischen diesen beiden Flags, was effektiv bedeutet, dass jedes Flag dem Bibliothekssuchpfad eine Bibliothek hinzufügt. Es scheint jedoch seltsam, dass beide Flaggen genau dasselbe tun. Was sind die Unterschiede zwischen diesen …


5
Was bedeutet der Fehler "Keine Versionsinformationen verfügbar" von Linux Dynamic Linker?
In unserem Produkt liefern wir einige Linux-Binärdateien, die dynamisch mit Systembibliotheken wie "libpam" verknüpft sind. Auf einigen Kundensystemen wird auf stderr der folgende Fehler angezeigt, wenn das Programm ausgeführt wird: ./authpam: /lib/libpam.so.0: no version information available (required by authpam) Die Anwendung läuft einwandfrei und führt Code aus der dynamischen Bibliothek …
85 linux  linker 

7
Die Kompilierung schlägt fehl mit "Verschiebung R_X86_64_32 gegen" .rodata.str1.8 "kann nicht verwendet werden, wenn ein freigegebenes Objekt erstellt wird"
Ich versuche, diesen Quellcode aus dem Makefile in einem VPS zu kompilieren, aber es funktioniert nicht. Das VPS ist ein 64-Cent-Betriebssystem Hier ist der vollständige Fehler # make gcc -c -O3 -w -DLINUX -I../SDK/amx/ ../SDK/amx/*.c g++ -c -O3 -w -DLINUX -I../SDK/amx/ ../SDK/*.cpp g++ -c -O3 -w -DLINUX -I../SDK/amx/ *.cpp g++ …


9
statische Variablen in einer Inline-Funktion
Ich habe eine Funktion, die in einer Header-Datei deklariert und definiert ist. Dies ist ein Problem für sich. Wenn diese Funktion nicht inline ist, erhält jede Übersetzungseinheit, die diesen Header verwendet, eine Kopie der Funktion, und wenn sie miteinander verknüpft sind, werden sie dupliziert. Ich habe das "behoben", indem ich …

6
gemeinsame globale Variablen in C.
Wie kann ich globale Variablen erstellen, die in C gemeinsam genutzt werden? Wenn ich es in eine Header-Datei lege, beschwert sich der Linker, dass die Variablen bereits definiert sind. Ist die einzige Möglichkeit, die Variable in einer meiner C-Dateien zu deklarieren und manuell externs oben in allen anderen C-Dateien einzufügen, …


1
Was sind die Befehlszeilenoptionen --start-group und --end-group?
Was ist der Zweck dieser Befehlszeilenoptionen? Bitte helfen Sie dabei, die Bedeutung der folgenden Befehlszeile zu entschlüsseln: -Wl,--start-group -lmy_lib -lyour_lib -lhis_lib -Wl,--end-group -ltheir_lib Anscheinend hat es etwas mit dem Verknüpfen zu tun, aber das GNU-Handbuch ist leise, was genau Gruppierung bedeutet.
82 gcc  linker  ld 


8
Ld durch Gold ersetzen - Erfahrung?
Hat jemand versucht, goldstatt zu verwenden ld? gold verspricht viel schneller zu sein als ld, so dass es helfen kann, Testzyklen für große C ++ - Anwendungen zu beschleunigen, aber kann es als Ersatz für ld verwendet werden? Kann gcc/ g++direkt anrufen gold.? Gibt es bekannte Fehler oder Probleme? Obwohl …

5
Was befindet sich in der LIB-Datei der statischen Bibliothek, der statisch verknüpften dynamischen Bibliothek und der dynamisch verknüpften dynamischen Bibliothek?
Was befindet sich in einer .lib-Datei der statischen Bibliothek, der statisch verknüpften dynamischen Bibliothek und der dynamisch verknüpften dynamischen Bibliothek? Wie kommt es, dass in einer dynamisch verknüpften dynamischen Bibliothek keine .lib-Datei erforderlich ist und dass in der statischen Verknüpfung die .lib-Datei nichts anderes als eine .obj-Datei mit allen Methoden …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.