C++-Linker
Nach oben zu Building
Projekt > Optionen > Erzeugen > C++-Linker
In diesem Dialogfeld legen Sie Optionen für den C++-Linker fest.
Inhaltsverzeichnis
Optionen | Beschreibung |
---|---|
Ziel, Übernehmen, Speichern |
Siehe Optionen für das Ziel. |
Gemeinsame Elemente |
Link-Optionen
Link-Optionen | Beschreibung | Linker-Optionen | ||||
---|---|---|---|---|---|---|
ilink32 | ilink64 | ld (iOS) | ld (Android) | |||
Inkrementelles Linken deaktivieren |
Unterdrückt die Erzeugung von Linker-Statusdateien und deaktiviert das inkrementelle Linken. Wenn Sie die Option Inkrementelles Linken deaktivieren verwenden, benötigen nachfolgende Link-Vorgänge genauso lange wie der erste. |
-Gn | -Gn | Plattform nicht unterstützt | Plattform nicht unterstützt | |
Zum Linken benötigte Zeit anzeigen |
Nimmt die zum Fertigstellen des Linkens benötigte Zeit in die Linker-Ausgabe auf.
|
-t | -t | Plattform nicht unterstützt | Plattform nicht unterstützt | |
Vollständige Debug-Informationen |
Fügt diejenigen Informationen in die Ausgabedatei ein, die erforderlich sind, um Anwendungen mit dem integrierten Debugger von C++Builder zu debuggen:
In der Befehlszeile bewirkt diese Option, dass der Linker in der TDS-Datei Debug-Informationen für alle Objektmodule einfügt, die Debug-Informationen enthalten. Sie können mit den Optionen -v+ und -v- die Debug-Informationen selektiv aktivieren oder deaktivieren, d. h. auf einer Modul-zu-Modul-Basis (aber nicht in derselben Befehlszeile, in der -v verwendet wurde). Beispiel: Der folgende Befehl schließt Debug-Informationen für die Module
Vorgabe = False
|
-v | -v | -S | -S | |
Nicht verwendete Abschnitte im Speicher bereinigen | Plattform nicht unterstützt | Plattform nicht unterstützt | Plattform nicht unterstützt | |||
.drc-Datei erzeugen |
ILINK32 erzeugt mit Delphi kompatible RC-Dateien (DRC-Dateien). Die DRC-Datei hat denselben Namen wie die ausführbare Datei und wird in dasselbe Verzeichnis wie diese ausgegeben.
|
-GD | -GD | Plattform nicht unterstützt | Plattform nicht unterstützt | |
.map-Symboldatei erzeugen |
Erzeugt in .\OutputFolder\ProjectName.map eine Map-Datei. Für Desktop-Plattformen legen Sie die MAP-Dateioptionen auf der Seite C++-Linker Ausgabe fest. |
N/A | N/A | -map (nicht aktiviert) | -Map (nicht aktiviert) | |
Importbibliothek erzeugen |
Erzeugt eine Importbibliotheksdatei, eine kleine statische Bibliothek, die die Exporte eines Package oder einer DLL beschreibt, damit eine Anwendung diese linken kann. Diese Datei wird zum Linken von dynamischen Bibliotheken verwendet. Ohne Importbibliothek können Sie das Package in C++ nicht verwenden. Die Erweiterung der Importbibliothek lautet:
Nur für C++-Packages aktiviert.
|
-Gi | -Gi | Plattform nicht unterstützt | Plattform nicht unterstützt | |
Statische Package-Bibliothek (.lib) erzeugen |
Erzeugt eine statisch linkbare Package-Bibliothek. Zum Erzeugen einer statischen C++-Package-Bibliothek (.lib) ist ein Satz von OBJ-Dateien erforderlich, die nicht mit den zum Erzeugen der dynamischen Bibliothek (.bpl) verwendeten OBJ-Dateien identisch sind. Wenn diese Option aktiviert ist (Vorgabe), generiert ein Erzeugen- oder Compilieren-Befehl zwei Gruppen von OBJ-Dateien:
Die OBJ-Dateien für die statische Bibliothek (.lib) werden in ein Unterverzeichnis ausgegeben, das im Projektverzeichnis, normalerweise im Verzeichnis |
-Gl | -Gl | Plattform nicht unterstützt | Plattform nicht unterstützt | |
Ausgabedateien beibehalten |
Weist den Linker an, die Ausgabedateien beizubehalten, die sonst bei Fehlern gelöscht würden. Der Linker wurde geändert, um seine Ausgabedatei (EXE/DLL) zu löschen, wenn beim Linken Fehler auftreten. Das alte Verhalten bestand darin, diese Dateien beizubehalten, anstatt sie zu löschen.
|
-Gk | -Gk | Plattform nicht unterstützt | Plattform nicht unterstützt | |
Mit dynamischer RTL linken |
Steuert, ob die C-RTL die Laufzeitbibliothek (cc3290.dll) dynamisch oder statisch linkt.
|
N/A | N/A | N/A | N/A | |
Mit der Delphi-Laufzeitbibliothek linken |
Stellt sicher, dass die Anwendung mit Folgendem gelinkt wird:
C++ linkt mit der Delphi-RTL, wenn diese Option aktiviert ist oder das Projekt eine Framework-Verbindung aufweist. FMX-Formularprojekte linken aufgrund ihrer Framework-Verbindung mit der Delphi-RTL.
Verwenden Sie diese Option für C++-Anwendungen ohne Framework-Verbindungen, die Delphi-Typen (wie UnicodeString, Variant usw.) verwenden oder auf von Units aus dem Delphi-RTL-Package (wie SysUtils, Classes, IOUtils usw.) bereitgestellte Funktionen zugreifen sollen.
C++-Konsolenanwendungen können Delphi-Exceptions nur behandeln, wenn Sie diese Option aktivieren oder beim Erstellen der Anwendung mit dem Experten Neue Konsolenanwendung (C++) ein Framework auswählen.
|
N/A | N/A | N/A | N/A | |
Temporäre .lnk-Linker-Datei nach Linken entfernen |
Mit dieser Option wird die temporäre Linker-Datei aus .\OutputFolder\ProjectName.lnk entfernt.
|
N/A | N/A | N/A | N/A | |
Maximale Fehleranzahl festlegen |
Gibt die Anzahl der maximal zulässigen Fehler (nn) an, ehe das Linken abgebrochen wird.
|
-Enn | -Enn | Plattform nicht unterstützt | Plattform nicht unterstützt |
Erweiterte Optionen
Erweiterte Optionen | Beschreibung | Linker-Optionen | |
---|---|---|---|
ilink32 | ilink64 | ||
Weitere Optionen |
Geben Sie beliebige, zusätzliche Linker-Optionen an. Weitere Optionen finden Sie unter ILINK32.EXE: Der inkrementelle 32-Bit-Linker. |
N/A | N/A |
Beim Linken Schreibweise beachten |
Unterscheidet zwischen Klein- und Großschreibung in public und externen Symbolen. Normalerweise sollte diese Option aktiviert sein, da sowohl C als auch C++ zwischen Groß- und Kleinschreibung unterscheiden.
|
-c | -c |
Vor dem Linken Status leeren |
Entfernt vorhandene inkrementelle Linker-Statusdateien und erstellt diese Dateien dann neu, ehe das Linken fortgesetzt wird. Diese Option ermöglicht die Aktualisierung der Statusdateien.
|
-C | -C |
Datenausführungsverhinderung kompatibel |
Gibt an, ob das ausführbare Image mit der Windows-Datenausführungsverhinderung kompatibel ist.
|
-GE:NXCOMPAT=ON -GE:NXCOMPAT=OFF | -GE:NXCOMPAT=ON -GE:NXCOMPAT=OFF |
DLLs verzögert laden |
Legt DLLs fest, die verzögert geladen werden sollen. Das verzögerte Laden ist bei DLLs sinnvoll, die selten von einer Anwendung verwendet werden, kann aber zu Lasten des Startvorgangs gehen. Verzögert geladene DLLs werden erst dann geladen und initialisiert, wenn der Eintrittspunkt in der DLL tatsächlich aufgerufen wird. Es gibt eine begleitende RTL-Unterstützung für das verzögerte Laden von DLLs, mit der Benutzer Fehler beim Laden behandeln und das verzögerte Ladesystem bei Bedarf ersetzen können. Siehe die Beschreibung der |
-d | -d |
Image-Prüfsumme ermitteln |
Wenn diese Option aktiviert ist, wird die Prüfsumme des Ziels berechnet und in den PE-Header des Ziels aufgenommen. Diese Information wird von NT-Kernel-Treibern und System-DLLs verwendet. Vorgabe = False |
-Gz | -Gz |
Große Adressen aktivieren |
Gibt an, ob das Objekt Adressen unterstützt, die größer als zwei Gigabyte sind.
|
-GF:LARGEADDRESSAWARE | |
Schnelles TLS |
Weist TLS (Thread-lokaler Speicher) von Windows zu, anstatt den Mechanismus zur gemeinsamen Nutzung von TLS zu verwenden.
|
-Gt | -Gt |
Dateiausrichtung |
Gibt die Seitenausrichtung für Code und Daten innerhalb der ausführbaren Datei an. Der Linker verwendet den Dateiausrichtungswert, wenn er die verschiedenen Objekte und Abschnitte (z. B. Code und Daten) in die Datei schreibt. Angenommen, Sie verwenden den Vorgabewert 0x200, so speichert der Linker den Abschnitt des Image in 512-Byte-Grenzen in der ausführbaren Datei.
Wenn Sie diese Option verwenden, müssen Sie einen Wert für die Dateiausrichtung angeben, der eine Potenz von 2 ist, wobei der kleinste Wert 16 ist. Der veraltete Stil dieser Option ( |
-Af | -Af |
Objektausrichtung |
Der Linker legt anhand des Objektausrichtungswertes die virtuellen Adressen der verschiedenen Objekte und Abschnitte (wie Code und Daten) in Ihrer Anwendung fest. Angenommen, Sie geben als Objektausrichtungswert 8192 an, so richtet der Linker die virtuellen Adressen der Abschnitte im Image an den 8192-Byte-Grenzen (0x2000) aus.
Wenn Sie diese Option verwenden, müssen Sie einen Wert für die Objektausrichtung angeben, der eine Potenz von 2 ist, wobei der kleinste Wert 4096 (0x1000, Vorgabe) ist. Die Befehlszeilenversion dieser Option ( |
-Ao | -Ao |
Ressourcen ersetzen |
Fügt Ressourcen hinzu und/oder ersetzt sie, ohne die vorhandenen Ressourcen zu entfernen.
|
-Rr | -Rr |
ASLR (Address Space Layout Randomization) unterstützen |
Legt fest, ob die DLL oder das ausführbare Image beim Laden mithilfe von ASLR (Address Space Layout Randomization) zufällig neu geordnet werden kann.
|
-GE:DYNAMICBASE=ON -GE:DYNAMICBASE=OFF | -GE:DYNAMICBASE=ON -GE:DYNAMICBASE=OFF |
High-Entropy für 64-Bit-ASLR (Address Space Layout Randomization) unterstützen |
Legt fest, ob die DLL oder das ausführbare Image High Entropy (64 Bit) ASLR (Address Space Layout Randomization) unterstützt.
Hinweis: Dieses Flag ist nur unter in Win64 verfügbar.
|
-GE:HIGHENTROPYVA=ON -GE:HIGHENTROPYVA=OFF | |
Terminal-Server |
Legt fest, dass die App für den Einsatz in einer Mehrbenutzerumgebung konzipiert ist.
|
-GE:TSAWARE=ON -GE:TSAWARE=OFF | -GE:TSAWARE=ON -GE:TSAWARE=OFF |
Ausführliches Linken |
Setzt die ausführliche Link-Option für RLINK32, wodurch beim Ressourcen-Linken detaillierte Informationen ausgegeben werden.
|
-r | -r |
Weitere gelinkte Bibliotheken
Weitere Bibliothek | Beschreibung | Linker-Optionen | ||||
---|---|---|---|---|---|---|
ilink32 | ilink64 | ld (iOS) | ld (Android) | |||
Weitere Optionen Weitere gelinkte Bibliotheken |
Linkt die Anwendung mit der angegebenen Liste von Bibliotheken. Legt Bibliotheken per Codenamen fest. Um beispielsweise mit MIDAS zu linken, fügen Sie der Liste "midas" hinzu.
|
Plattform nicht unterstützt | Plattform nicht unterstützt | -l | -l | |
Mit DBX-InterBase linken |
Linkt mit der dbExpress InterBase-Clientbibliothek. |
Plattform nicht unterstützt | Plattform nicht unterstützt | -lsqlib | -lsqlib | |
Mit Indy linken |
Linkt mit den Indy-Bibliotheken. |
Plattform nicht unterstützt | Plattform nicht unterstützt | -lIndyCore -lIndyProtocols -lIndySystem | -lIndyCore -lIndyProtocols -lIndySystem | |
Mit InterBase ToGo linken |
Linkt mit der dbExpress InterBase ToGo-Clientbibliothek. |
Plattform nicht unterstützt | Plattform nicht unterstützt | -libtogo | -libtogo | |
Mit Midas linken |
Linkt mit MIDAS, der DataSnap-Bibliothek. |
Plattform nicht unterstützt | Plattform nicht unterstützt | -lmidas | -lmidas | |
Mit regulären Ausdrücken verknüpfen. |
Linkt mit der Bibliothek der regulären Ausdrücke, die an C++ angepasste PCRE-Bibliothek (Perl-kompatible reguläre Ausdrücke). |
Plattform nicht unterstützt | Plattform nicht unterstützt | -lpcre | Plattform nicht unterstützt | |
Mit SQLite linken |
Linkt mit der dbExpress SQLite-Clientbibliothek. |
Plattform nicht unterstützt | Plattform nicht unterstützt | -lsqlite3 | -lsqlite | |
Mit SSL und Crypto linken |
Linkt mit den OpenSSL-Bibliotheken.
Siehe auch Erstellen von iOS-Apps, OpenSSL-Unterstützung. |
Plattform nicht unterstützt | Plattform nicht unterstützt | -lssl -lcrypto | Plattform nicht unterstützt | |
Mit ZLib linken |
Linkt mit der ZLib-Komprimierungsbibliothek.
|
Plattform nicht unterstützt | Plattform nicht unterstützt | -lz | -lz | |
Niedrigste unterstützte iOS-Version |
Legt die niedrigste iOS-Version fest, die Ihre Anwendung unterstützt.
Siehe Plattformvoraussetzungen für FireMonkey, iOS-Anforderungen. |
Plattform nicht unterstützt | Plattform nicht unterstützt | -iphoneos_version_min | N/A | |
Symbole, von der die Laufzeit erwartet, dass sie exportiert werden |
Liste der Symbole, die exportiert werden müssen, weil sie zur Laufzeit benötigt werden. |
Plattform nicht unterstützt | Plattform nicht unterstützt | -exported_symbol | Plattform nicht unterstützt |
Heap-Einstellungen des Linkers
WIN64
Heap-Einstellungen des Linkers | Beschreibung | Befehlszeilen-Flag |
---|---|---|
Heap-Größe für Code |
Heap für |
-GHcode=0xnnnn |
Heap-Größe für Daten |
Heap für |
-GHdata=0xnnnn |
Heap-Größe für Dwarf abbrev |
Heap für Abkürzungscodes |
-GHdwarf_abbrev=0xnnnn |
Heap-Größe für Dwarf aranges |
Heap für Adressbereichseinträge |
-GHdwarf_aranges=0xnnnn |
Heap-Größe für Dwarf info |
Heap für Module und Typen trivialer Symbole |
-GHdwarf_info=0xnnnn |
Heap-Größe für Dwarf line |
Heap für Zeilennummerinformationen |
-GHdwarf_line=0xnnnn |
Heap-Größe für Dwarf loc |
Heap für Positionsbeschreibungen |
-GHdwarf_loc=0xnnnn |
Heap-Größe für Dwarf macinfo |
Heap für Makroinformationen |
-GHdwarf_macinfo=0xnnnn |
Heap-Größe für Dwarf pubtypes |
Heap für Typen öffentlicher Symbole |
-GHdwarf_pubtypes=0xnnnn |
Heap-Größe für Dwarf-Bereiche |
Heap für Adressbereiche |
-GHdwarf_ranges=0xnnnn |
Heap-Größe für Dwarf str |
Heap für Dwarf-Strings |
-GHdwarf_str=0xnnnn |
WIN32
Heap-Einstellungen des Linkers | Beschreibung | Befehlszeilen-Flag |
---|---|---|
Heap-Größe für Info |
Heap für Linker-Datenstrukturen |
-GHinfo |
Heap-Größe für Code |
Heap für Code |
-GHcode |
Heap-Größe für Daten |
Heap für Daten |
-GHdata |
Heap-Größe für RO-Daten |
Heap für schreibgeschützte Daten |
-GHrodata |
Heap-Größe für uninitialisierte Daten |
Heap für uninitialisierte Daten |
-GHbss |
Heap-Größe für TDS |
Heap für Turbo Debugger-Symbole |
-GHtds |