C++-Linker

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Projektoptionen (Dialogfeld)


Projekt > Optionen > C++-Linker

In diesem Dialogfeld legen Sie Optionen für den C++-Linker fest.

Optionen Beschreibung

Ziel, Übernehmen, Speichern

Siehe Optionen für das Ziel.

Gemeinsame Elemente

Siehe Gemeinsame Elemente auf den Projektoptionsseiten.


Link-Optionen

Link-Optionen Beschreibung Linker-Optionen
ilink32 ilink64 xlink 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.
Vorgabe = False

-Gn -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.
Vorgabe = False

-t -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 mod2 und mod3 ein; nicht jedoch für mod1 und mod4:

ILINK32 mod1 -v+ mod2 mod3 -v- mod4

Vorgabe = False

-v -v -v -S -S

.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.
Vorgabe = False

-GD -GD -GD Plattform nicht unterstützt Plattform nicht unterstützt

.map-Symboldatei erzeugen

Erzeugt in .\OutputFolder\ProjectName.map eine Map-Datei.
Der Linker vergibt für die Map-Datei standardmäßig den Basisnamen des Programms und die Erweiterung .map.
Vorgabe = True

Für Desktop-Plattformen legen Sie die MAP-Dateioptionen auf der Seite C++-Linker Ausgabe fest.

N/A 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 nicht in C++ verwenden.

Die Erweiterung der Importbibliothek lautet:

Hinweis:
Diese Option wird nur für dynamische C++-Link-Bibliotheksprojekte angezeigt.

Nur für C++-Packages aktiviert.
Vorgabe = True

-Gi -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 dynamische Bibliothek (.bpl) werden mit Folgendem erzeugt:
    • BCC32 -D_RTLDLL;USEPACKAGES oder:
    • DCC32 -JPHNE (C++-OBJ-Datei, -HPP-Datei im Namespace erzeugen, alles exportieren)


  • Die OBJ-Dateien für die statische Bibliothek (.lib) werden mit:
    • BCC32 -U_RTLDLL;USEPACKAGES oder:
    • DCC32 -JPHN (C++-OBJ-Datei, -HPP-Datei im Namespace erzeugen) erzeugt
  • Für beide Typen erstellt der TLIB-Bibliotheksmanager im Verzeichnis \bpilib die eigentliche Bibliothek.

Die OBJ-Dateien für die statische Bibliothek (.lib) werden in ein Unterverzeichnis ausgegeben, das im Projektverzeichnis, normalerweise im Verzeichnis \Debug\Win32\staticobjs, erstellt wird. Die OBJ-Dateien für die dynamische Bibliothek (.bpl) werden in das Projektverzeichnis ausgegeben.

Wenn diese Option deaktiviert ist, generiert ein Erzeugen- oder Compilieren-Befehl nur die dynamische Bibliothek (.bpl).

Weitere Informationen finden Sie unter Erzeugen von statischen Packages.

Nur für C++-Packages aktiviert.

Vorgabe = True

-Gl -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.
Vorgabe = False

-Gk -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.
Vorgabe = True

N/A N/A N/A N/A N/A

Mit der Delphi-Laufzeitbibliothek linken
(RTL-Package und cp32mt.lib/cp32mti.lib)

Stellt sicher, dass die Anwendung mit Folgendem gelinkt wird:

  • Dem Delphi-RTL-Package (rtl.lib oder rtl.bpi)
  • Den Units memmgr.lib und sysinit.obj
  • Der C++-RTL, die mit der Delphi-RTL kompatibel ist (cp32*.lib).

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.
Vorgabe = False

N/A 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.
Vorgabe = True

N/A 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.
Vorgabe = 0

-Enn -Enn -Enn Plattform nicht unterstützt Plattform nicht unterstützt

Erweiterte Optionen

Erweiterte Optionen Beschreibung Linker-Optionen
ilink32 ilink64 xlink ld (iOS) ld (Android)

Weitere Optionen

Geben Sie beliebige, weitere Linker-Optionen an. Weitere Optionen finden Sie unter ILINK32.EXE: Der inkrementelle 32-Bit-Linker.

N/A N/A N/A 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.
Vorgabe = True

-c -c -c Plattform nicht unterstützt Plattform nicht unterstützt

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.
Vorgabe = False

-C -C -C Plattform nicht unterstützt Plattform nicht unterstützt

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 Ellipse-Popup-Schaltfläche unter Gemeinsame Elemente auf den Projektoptionsseiten.

-d -d -d Plattform nicht unterstützt Plattform nicht unterstützt

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 -Gz Plattform nicht unterstützt Plattform nicht unterstützt

Schnelles TLS

Weist TLS (Thread-lokaler Speicher) von Windows zu, anstatt den Mechanismus zur gemeinsamen Nutzung von TLS zu verwenden.
Vorgabe = False

-Gt -Gt -Gt Plattform nicht unterstützt Plattform nicht unterstützt

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 (/A:dd) wird weiterhin aus Gründen der Abwärtskompatibilität unterstützt. Mit dieser Option wird die Dezimalzahl "dd" mit der Potenz von 2 zur Berechnung des Wertes der Dateiausrichtung multipliziert.

Die Befehlszeilenversion dieser Option (/Afxxxx) akzeptiert entweder dezimale oder hexadezimale Zahlen als Dateiausrichtungswert.
Vorgabe = 0x200

-Af -Af -Af Plattform nicht unterstützt Plattform nicht unterstützt

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) akzeptiert entweder dezimale oder hexadezimale Zahlen als Objektausrichtungswert.
Vorgabe = 0x1000

-Ao -Ao -Ao Plattform nicht unterstützt Plattform nicht unterstützt

Ressourcen ersetzen

Fügt Ressourcen hinzu und/oder ersetzt sie, ohne die vorhandenen Ressourcen zu entfernen.
Vorgabe = False

-Rr -Rr -Rr Plattform nicht unterstützt Plattform nicht unterstützt

Ausführliches Linken

Setzt die ausführliche Link-Option für RLINK32, wodurch beim Ressourcen-Linken detaillierte Informationen ausgegeben werden.
Vorgabe = False

-r -r -r Plattform nicht unterstützt Plattform nicht unterstützt

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.

Hinweis: Andere erweiterte Optionen ermöglichen das Linken mit allgemeinen Bibliotheken, wie z. B. InterBase. Verwenden Sie, wenn möglich, diese Optionen anstelle von Weitere gelinkte Bibliotheken.
Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt -l -l

Mit DBX-InterBase linken

Linkt mit der dbExpress InterBase-Clientbibliothek.
Vorgabe = True

Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt -lsqlib -lsqlib

Mit Indy linken

Linkt mit den Indy-Bibliotheken.
Vorgabe = True

Plattform nicht unterstützt 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.
Vorgabe = True

Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt -libtogo -libtogo

Mit Midas linken

Linkt mit MIDAS, der DataSnap-Bibliothek.
Vorgabe = True

Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt -lmidas -lmidas

Mit regulären Ausdrücken verknüpfen.
Vorgabe = True

Linkt mit der Bibliothek der regulären Ausdrücke, die an C++ angepasste PCRE-Bibliothek (Perl-kompatible reguläre Ausdrücke).
Weitere Informationen finden Sie unter http://www.pcre.org (EN).
Vorgabe = True

Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt -lpcre Plattform nicht unterstützt

Mit SQLite linken

Linkt mit der dbExpress SQLite-Clientbibliothek.
Vorgabe = True

Plattform nicht unterstützt 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.
Vorgabe = False

Plattform nicht unterstützt Plattform nicht unterstützt Plattform nicht unterstützt -lssl -lcrypto Plattform nicht unterstützt

Mit ZLib linken

Linkt mit der ZLib-Komprimierungsbibliothek.
Weitere Informationen finden Sie unter http://www.zlib.net (EN).
Vorgabe = True

Plattform nicht unterstützt 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.
Vorgabe = 5.1.0

Plattform nicht unterstützt 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 Plattform nicht unterstützt -exported_symbol Plattform nicht unterstützt

Übergeordnete Seiten

Siehe auch