Technische Details zu LLD

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Linker für C++

Achtung: Diese Informationen beziehen sich nur auf Plattformen für 64-Bit-Windows (Modern).

Informationen zur Verwendung von LLD in der Befehlszeile finden Sie unter Verwenden von LLD in der Befehlszeile.

LLD

LLD ist ein Linker des LLVM-Projekts, der System-Linker wie GNU BFD und Gold-Linker ersetzen kann und viel schneller als diese ausgeführt wird. Außerdem sind seine Funktionen für Toolketten-Entwickler nützlich.

Das LLD-Projekt unterstützt ELF (Unix), PE/COFF (Windows), Mach-O (macOS) und WebAssembly in absteigender Reihenfolge der Vollständigkeit. Aber RAD Studio unterstützt nur COFF für Windows.

Linker-Einstellungen

Beachten Sie die folgenden Informationen zu den Merkmalen und dem Verhalten des LLD-Linkers.

  • Nicht verwendete Abschnitte im Speicher bereinigen: Entspricht --gc-sections und wenn nicht aktiviert --no-gc-sections. Dies kann sehr nützlich sein, um die Größe der endgültigen Binärdatei (EXE oder DLL) zu reduzieren.
  • Datenausführungsverhinderung kompatibel (standardmäßig aktiviert). Entspricht bei Deaktivierung --disable-nxcompat.
  • DLL verzögert laden: Entspricht --delayload=... Ermöglicht eine Liste von DLLs, die verzögert geladen werden sollen.
  • Dateiausrichtung: Entspricht --file-alignment= mit einen Standardwert von 0x200 (512).
    Achtung: Dieser Wert muss ein Vielfaches von 512 Byte sein.
  • Objektausrichtung: Entspricht --section-alignment= mit einem Standardwert von 0x1000 (4096).
    Achtung: Dieser Wert muss ein Vielfaches von 512 Byte sein.
  • ASLR-/High Entropy (Address Space Layout Randomization) (standardmäßig aktiviert): Entspricht bei Deaktivierung --disable-dynamicbase.
  • Ausführliches Linken: Ist für die Diagnose von Linker-Problemen hilfreich.
  • Refile und Objekt-/Abschnittsausrichtung: Beachten Sie, dass der Linker auch die Datenausrichtung an 16-Byte-Grenzen unterstützt, was für neuere Befehlssätze wichtig ist. Beim alten ilink war dies nicht der Fall. Das war ein Grund dafür, dass wir in der Vergangenheit neuere Befehlssätze nicht standardmäßig aktiviert haben.
  • Jetzt unterstützt RAD Studio die Compiler-Optionen -fdata-sections und -ffunction-sections.

    Siehe auch