C++-Linker

Aus Appmethod Topics
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-Unterstützung
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

YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png

Zum Linken benötigte Zeit anzeigen

Nimmt die zum Fertigstellen des Linkens benötigte Zeit in die Linker-Ausgabe auf.
Vorgabe = False

YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png

Vollständige Debug-Informationen

Fügt diejenigen Informationen in die Ausgabedatei ein, die erforderlich sind, um Anwendungen mit dem integrierten Debugger von Appmethod C++ zu debuggen:


Vorgabe = False

YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png

.drc-Datei erzeugen

ILINK32 erzeugt mit Object Pascal 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

YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png

.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.

YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png

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

YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png

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).


  • Die OBJ-Dateien für die statische Bibliothek (.lib).
  • 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

YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png

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

YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png

Mit dynamischer RTL linken

Steuert, ob die C-RTL die Laufzeitbibliothek (cc3290.dll) dynamisch oder statisch linkt.
Vorgabe = True

YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png

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

Stellt sicher, dass die Anwendung mit Folgendem gelinkt wird:

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

C++ linkt mit der Object Pascal-RTL, wenn diese Option aktiviert ist oder das Projekt eine Framework-Verbindung aufweist. FMX-Formularprojekte linken aufgrund ihrer Framework-Verbindung mit der Object Pascal-RTL. Verwenden Sie diese Option für C++-Anwendungen ohne Framework-Verbindungen, die Object Pascal-Typen (wie UnicodeString, Variant usw.) verwenden oder auf von Units aus dem Object Pascal-RTL-Package (wie SysUtils, Classes, IOUtils usw.) bereitgestellte Funktionen zugreifen sollen.

C++-Konsolenanwendungen können Object Pascal-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

YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png

Temporäre .lnk-Linker-Datei nach Linken entfernen

Mit dieser Option wird die temporäre Linker-Datei aus .\OutputFolder\ProjectName.lnk entfernt.
Vorgabe = True

YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png

Maximale Fehleranzahl festlegen

Gibt die Anzahl der maximal zulässigen Fehler (nn) an, ehe das Linken abgebrochen wird.
Vorgabe = 0

YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png

Erweiterte Optionen

Erweiterte Optionen Beschreibung Linker-Unterstützung
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.

YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png

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

YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png

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

YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png

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.

YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png

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

YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png

Schnelles TLS

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

YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png

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.
Vorgabe = 0x200

YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png

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.
Vorgabe = 0x1000

YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png

Ressourcen ersetzen

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

YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png

Ausführliches Linken

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

YesC++11Feature.png
YesC++11Feature.png
YesC++11Feature.png

Weitere gelinkte Bibliotheken

Linkt die Anwendung mit der angegebenen Liste von Bibliotheken.

Legt Bibliotheken per Codenamen fest.

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.
YesC++11Feature.png
YesC++11Feature.png

Mit DBX-InterBase linken

Linkt mit der dbExpress InterBase-Clientbibliothek.
Vorgabe = True

YesC++11Feature.png
YesC++11Feature.png

Mit Indy linken

Linkt mit den Indy-Bibliotheken.
Vorgabe = True

YesC++11Feature.png
YesC++11Feature.png

Mit InterBase ToGo linken

Linkt mit der dbExpress InterBase ToGo-Clientbibliothek.
Vorgabe = True

YesC++11Feature.png
YesC++11Feature.png

Mit Midas linken

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

YesC++11Feature.png
YesC++11Feature.png

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

YesC++11Feature.png

Mit SQLite linken

Linkt mit der dbExpress SQLite-Clientbibliothek.
Vorgabe = True

YesC++11Feature.png
YesC++11Feature.png

Mit SSL und Crypto linken

Linkt mit den OpenSSL-Bibliotheken.

Siehe auch Erstellen von iOS-Apps, OpenSSL-Unterstützung.
Vorgabe = False

YesC++11Feature.png

Mit ZLib linken

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

YesC++11Feature.png
YesC++11Feature.png

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

YesC++11Feature.png
YesC++11Feature.png

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.

YesC++11Feature.png

Übergeordnete Seiten

Siehe auch