C++-Linker-Warnungen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu C++-Linker


Projekt > Optionen > C++-Linker > Warnungen

In diesem Dialogfeld legen Sie Warnungsoptionen 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.

Hinweis: Die Seite Warnungen unterstützt nur ILINK32 (32-Bit-Windows), ILINK64 (64-Bit-Windows) und XLINK (macOS).
Option Beschreibung

Alle Warnungen deaktivieren
(-w-)

Deaktiviert alle Warnungen und Fehlermeldungen. Vorgabe = False

Alle Warnungen aktivieren
(-w)

Zeigt alle Warnungen und Fehlermeldungen an. Vorgabe = False

Ausgewählte Warnungen

Aktiviert nur die speziellen Warnungen, die auf True gesetzt sind. Klicken Sie auf +, um die Liste mit den ILINK32-Warnungen zu öffnen. Vorgabe = True

Option Vorgabe Beschreibung Option

Versuch, nicht public Symbol zu exportieren

Ein

Ein Symbolname ist im EXPORTS-Abschnitt der Moduldefinitionsdatei aufgeführt, aber in den gelinkten Modulen wurde kein als public deklariertes Symbol mit diesem Namen gefunden.

Mögliche Ursachen:

  • Sie versuchen, eine Funktion zu exportieren, die nicht als public deklariert ist.
  • Sie haben das Schlüsselwort _export in der Deklaration einer Funktion angegeben, aber nicht in ihrer Definition oder umgekehrt.
  • Sie haben einen Schreibfehler gemacht.
  • Sie exportieren eine Prozedur, die deklariert, aber nicht definiert ist.
  • Bei Exporten mit Groß-/Kleinschreibung erfordert die von Windows verwendete Pascal-Aufrufkonvention, dass diese Symbole alle in Großbuchstaben vorliegen.

-wexp

Package ohne Units erstellen

Ein

Sie versuchen, ein Package zu erstellen, das keine Units enthält. Überprüfen Sie die "Enthält"-Liste, um sicherzustellen, dass die zugehörigen Units aufgeführt sind. (In der "Enthält"-Liste wird festgelegt, welche Unit-Dateien in das Package eingebunden werden sollen.)

-wnou

Image als ausführbare Datei gelinkt, aber mit der Erweiterung .DLL

Ein

Der Linker erzeugt diese Warnung, wenn eine ausführbare Datei erzeugt und in einer Datei mit der Erweiterung .DLL oder .BPL gespeichert wurde. Diese Warnung tritt normalerweise auf, wenn Sie versuchen, eine .DLL oder .BPL zu erzeugen, aber vergessen haben, ein .DLL- oder .BPL-Ziel anzugeben.

Die vollständige Warnung lautet:

Image wurde als ausführbare Datei gelinkt, aber mit der Erweiterung .DLL bzw. .BPL

-wdee

Public Symbol in mehreren Bibliotheken definiert

Aus

Diese Warnung wird angezeigt, wenn in zwei verschiedenen Bibliotheken doppelte Symbole vorhanden sind.

-wdup und -wdpl unterliegen einer Sonderbehandlung. -wdup kann als Hauptsteuerung für Warnungen über doppelte public-Symbole angesehen werden. Wenn diese Warnung deaktiviert ist, werden keine Meldungen über public-Symbole ausgegeben. -wdpl steuert, ob Warnungen für doppelte public-Symbole ausgegeben werden, die aus Bibliotheksmodulen gelinkt werden. Wenn -wdpl deaktiviert und -wdup aktiviert ist, werden nur Warnungen für doppelte public-Symbole aus OBJ-Dateien der Linker-Befehlszeile ausgegeben. Wenn sowohl -wdpl als auch -wdup aktiviert sind, kennzeichnet der Linker doppelte public-Symbole in Modulen, die aus LIB-Dateien gelinkt werden.

Gegenwärtig ist -wdpl die einzige Warnung, die standardmäßig deaktiviert ist. Wenn Sie in der Befehlszeile keine Warnungsoptionen angeben, dann entspricht dies Folgendem:

-w+exp -w+rty -w+dup -w-dpl -w+nou -w+srd -w+dee -w+dli -w+snf

Die vollständigen Warnungen lauten:

Öffentliches Symbol 'symbol' sowohl in Bibliotheksmodul 'module1' als auch 'module2' definiert
Öffentliches Symbol 'symbol' sowohl in Modul 'module1' als auch 'module2' definiert

-wdup
-wdpl

Public Symbol in mehreren Objektdateien definiert

Ein

Abschnitt nicht gefunden

Ein

Diese Warnung tritt auf, wenn ein benannter Abschnitt nicht gefunden wird.

Die vollständige Warnung lautet:

Abschnitt 'section' nicht gefunden

-wsnf

Entfernen von Adressverschiebungs-Informationen aus der DLL könnte zu Fehlfunktionen führen

Ein

Diese Warnung tritt auf, wenn die Option Basisadresse beim Linken einer DLL festgelegt ist.

Die vollständige Warnung lautet:

Entfernen von Adressverschiebungs-Informationen aus der DLL könnte zu Fehlfunktionen der DLL führen

-wsrd

DLL kann nicht geladen werden

Ein

Diese Warnung tritt auf, wenn die Option Basisadresse beim Linken einer DLL festgelegt ist. In fast allen Fällen verhindert dieser Fehler, dass die Anwendung ausgeführt wird.

-wuld

Inkrementelles Linken kann nicht ausgeführt werden

Ein

Diese Warnung erscheint, wenn das inkrementelle Linken fehlschlägt. Der Linker hat einen Fehler in einer seiner Statusdateien (Projektname.IL*) gefunden. Daher wurde ein vollständiger Link-Vorgang gestartet und neue Statusdateien erstellt.

Die vollständige Warnung lautet:

Inkrementelles Linken kann nicht ausgeführt werden – vollständiges Linken wird ausgeführt

-wrty

Siehe auch