Festlegen der Compiler- und Buildeigenschaften
In der IDE werden alle Informationen, die zum Erstellen eines Projekts benötigt werden, als Eigenschaften verfügbar gemacht. Zu diesen Informationen zählen unter anderem der Anwendungsname, die Erweiterung (z.B. DLL, LIB, EXE), Compileroptionen, Linkeroptionen, Debuggereinstellungen und benutzerdefinierte Buildschritte. Üblicherweise verwenden Sie die Eigenschaftenseiten, um diese Eigenschaften anzuzeigen und zu ändern. Um auf die Eigenschaftenseiten zuzugreifen, wählen Sie im HauptmenüProjektnameneigenschaften> aus, oder klicken Sie mit der rechten Maustaste auf den Projektknoten in Projektmappen-Explorer, und wählen Sie Eigenschaften aus.
Standardeigenschaften
Wenn Sie ein Projekt erstellen, weist das System verschiedenen Eigenschaften Werte zu. Die Standardwerte variieren in Abhängigkeit von der Art des Projekts und den Optionen, die Sie im App-Assistenten auswählen. Beispielsweise verfügt ein ATL-Projekt über Eigenschaften, die sich auf MIDL-Dateien beziehen, aber diese Eigenschaften sind in einer einfachen Konsolenanwendung nicht vorhanden. Die Standardeigenschaften werden im Bereich „Allgemein“ auf den Eigenschaftenseiten angezeigt:
Anwenden von Eigenschaften auf Buildkonfigurationen und Zielplattformen
Einige Eigenschaften, z. B. der Anwendungsname, gelten für alle Buildvariationen und Zielplattformen, unabhängig davon, ob es sich um einen Debug- oder Releasebuild handelt. Die meisten Eigenschaften hängen jedoch von Konfigurationen ab. Um den richtigen Code zu generieren, muss der Compiler sowohl die spezifische Plattform kennen, auf der das Programm ausgeführt wird, als auch welche spezifischen Compileroptionen verwendet werden sollen. Wenn Sie also eine Eigenschaft festlegen, ist es wichtig, darauf zu achten, auf welche Konfiguration und Plattform der neue Wert angewendet werden soll. Sollte es nur für Debuggen von Win32-Builds gelten, oder sollte es auch für das Debuggen von ARM64 und Debug x64 gelten? Die Optimization-Eigenschaft ist beispielsweise in einer Releasekonfiguration standardmäßig auf Geschwindigkeit maximieren (/O2) festgelegt, ist aber in der Debugkonfiguration deaktiviert.
Sie können immer die Konfiguration und plattform anzeigen und ändern, auf die ein Eigenschaftswert angewendet werden soll. Die folgende Abbildung zeigt die Eigenschaftenseiten mit den Steuerelementen konfiguration und Plattforminformationen oben. Wenn die Optimization-Eigenschaft hier festgelegt ist, gilt sie nur für Debuggen von Win32-Builds, der derzeit aktiven Konfiguration, wie die roten Pfeile zeigen.
Die folgende Abbildung zeigt dieselbe Eigenschaftenseite des Projekts, allerdings wurde die Konfiguration in „Release“ geändert. Beachten Sie den geänderten Wert der Eigenschaft „Optimierung“. Beachten Sie außerdem, dass die aktive Konfiguration immer noch „Debug“ ist. Sie können hier Eigenschaften für jede Konfiguration festlegen. Diese müssen nicht der aktiven Konfiguration entsprechen.
Zielplattformen
Zielplattform bezieht sich auf die Art des Geräts und Betriebssystems, auf dem die ausführbare Datei ausgeführt wird. Sie können ein Projekt für mehr als eine Plattform erstellen. Die verfügbaren Zielplattformen für C++-Projekte hängen von der Art des Projekts ab. Dazu gehören u. a. Win32, x64, ARM, ARM64, Android und iOS. Die Zielplattform x86, die im Konfigurations-Manager angezeigt wird, entspricht Win32 in nativen C++-Projekten. Win32 bedeutet 32-Bit-Windows, und x64 bedeutet 64-Bit-Windows. Weitere Informationen zu diesen beiden Plattformen finden Sie unter Ausführung von 32-Bit-Anwendungen.
Der Beliebige CPU-Zielplattformwert, der möglicherweise in Configuration Manager angezeigt wird, hat keine Auswirkungen auf native C++-Projekte. Sie ist nur für C++/CLI und andere .NET-Projekttypen relevant. Weitere Informationen finden Sie unter /CLRIMAGETYPE
(Angeben des Typs des CLR-Images).
Weitere Informationen zum Festlegen von Eigenschaften für einen Debugbuild finden Sie unter:
- Projekteinstellungen für eine C++-Debugkonfiguration
- Debuggereinstellungen und -vorbereitung
- Vorbereitung des Debugvorgangs: Visual C++-Projekttypen
- Angeben von Symbol- (PDB-) und Quelldateien im Visual Studio Debugger
Optionen für C++-Compiler und Linker
Die Optionen für C++-Compiler und Linker sind unter den Knoten C/C++ und Linker im linken Bereich unter Konfigurationseigenschaften zu finden. Diese Optionen werden direkt in Befehlszeilenoptionen übersetzt, die an den Compiler übergeben werden. Wenn Sie die Dokumentation für eine bestimmte Option lesen möchten, klicken Sie im mittleren Bereich auf die Option, und drücken Sie F1. Alternativ können Sie die Dokumentation für alle Optionen unter MSVC-Compileroptionen und MSVC-Linkeroptionen durchsuchen.
Im Dialogfeld Eigenschaftenseiten werden nur die Eigenschaftenseiten angezeigt, die für das aktuelle Projekt relevant sind. Wenn das Projekt beispielsweise keine Datei enthält .idl
, wird die MIDL-Eigenschaftenseite nicht angezeigt. Weitere Informationen zu den Einstellungen auf den einzelnen Eigenschaftenseiten finden Sie unter Eigenschaftenseiten (C++).
Verzeichnis- und Pfadwerte
MSBuild unterstützt die Verwendung von Kompilierzeitkonstanten für bestimmte Zeichenfolgenwerte, z. B. Includeverzeichnisse und Pfade, die als Makros bezeichnet werden. Ein Makro kann auf einen Wert verweisen, der von Visual Studio oder dem MSBuild-System definiert ist, oder auf einen benutzerdefinierten Wert. Makros sehen wie $(macro-name)
oder %(item-macro-name)
aus. Sie werden auf den Eigenschaftenseiten verfügbar gemacht, auf die Sie mit dem Eigenschaften-Editor verweisen und sie ändern können. Verwenden Sie Makros anstelle hartcodierter Werte wie Verzeichnispfade. Makros erleichtern die Freigabe von Eigenschafteneinstellungen zwischen Computern und zwischen Versionen von Visual Studio. Außerdem können Sie besser sicherstellen, dass Ihre Projekteinstellungen ordnungsgemäß an der Vererbung von Eigenschaften teilnehmen.
Die folgende Abbildung zeigt die Eigenschaftenseiten für ein Visual Studio-C++-Projekt. Im linken Bereich ist die REGEL VC++-Verzeichnisse ausgewählt, und im rechten Bereich werden die Eigenschaften aufgelistet, die dieser Regel zugeordnet sind. Die Eigenschaftswerte sind häufig Makros, z. B $(VC_SourcePath)
. :
Sie können den Eigenschaften-Editor verwenden, um die Werte aller verfügbaren Makros anzuzeigen.
Vordefinierte Makros
Globale Makros:
Globale Makros gelten für alle Elemente in einer Projektkonfiguration. Ein globales Makro weist die Syntax$(name)
auf. Ein Beispiel eines globalen Makros ist$(VCInstallDir)
, das das Stammverzeichnis der Visual Studio-Installation speichert. Ein globales Makro entspricht einerPropertyGroup
in MSBuild.Elementmakros
Elementmakros weisen die Syntax%(name)
auf. Bei einer Datei gilt ein Elementmakro nur für diese Datei – z. B. können Sie%(AdditionalIncludeDirectories)
verwenden, um Includeverzeichnisse anzugeben, die nur für eine bestimmte Datei gelten. Diese Art des Elementmakros entspricht denItemGroup
-Metadaten in MSBuild. Wenn ein Elementmakro im Zusammenhang mit einer Projektkonfiguration verwendet wird, gilt es für alle Dateien eines bestimmten Typs. Beispielsweise kann die C/C++-Konfigurationseigenschaft Präprozessordefinitionen ein%(PreprocessorDefinitions)
-Elementmakro verwenden, das für alle CPP-Dateien im Projekt gilt. Diese Art des Elementmakros entspricht denItemDefinitionGroup
-Metadaten in MSBuild. Weitere Informationen finden Sie unter Item Definitions (Elementdefinitionen).
benutzerdefinierte Makros
Sie können benutzerdefinierte Makros erstellen, um sie als Variablen in Projektbuilds zu verwenden. Sie können z. B. ein benutzerdefiniertes Makro erstellen, das einen Wert für einen benutzerdefinierten Buildschritt oder ein benutzerdefiniertes Buildtool bereitstellt. Ein benutzerdefiniertes Makro ist ein Name-Wert-Paar. Verwenden Sie die $(name)
-Notation in einer Projektdatei, um auf den Wert zuzugreifen.
Ein benutzerdefiniertes Makro wird in einem Eigenschaftenblatt gespeichert. Wenn Ihr Projekt noch kein Eigenschaftenblatt enthält, können Sie eins erstellen, indem Sie die Schritte unter Freigeben oder Wiederverwenden von Visual Studio-Projekteinstellungen ausführen.
So erstellen Sie ein benutzerdefiniertes Makro
Öffnen Sie das Eigenschaften-Manager-Fenster. (Wählen Sie auf der Menüleiste Ansicht> aus. Eigenschaften-Manager oderAndererWindows-Eigenschaften-Manager>anzeigen>.) Öffnen Sie das Kontextmenü für ein Eigenschaftenblatt (dessen Name endet auf
.user
), und wählen Sie dann Eigenschaften aus. Das Dialogfeld Eigenschaftenseiten für dieses Eigenschaftenblatt wird geöffnet.Klicken Sie im linken Bereich des Dialogfelds auf Benutzermakros. Klicken Sie im rechten Bereich auf die Schaltfläche Makro hinzufügen, um das Dialogfeld Benutzermakro hinzufügen zu öffnen.
Geben Sie im Dialogfeld einen Namen und einen Wert für das Makro an. Optional können Sie das Kontrollkästchen Makro als Umgebungsvariable in Buildumgebung festlegen aktivieren.
Eigenschaften-Editor
Mit dem Eigenschaften-Editor können Sie bestimmte Zeichenfolgeneigenschaften ändern und Makros als Werte auswählen. Um auf den Eigenschaften-Editor zuzugreifen, wählen Sie eine Eigenschaft auf einer Eigenschaftenseite aus, und klicken Sie rechts auf die Schaltfläche mit dem Pfeil nach unten. Wenn die Dropdownliste Bearbeiten> enthält<, können Sie sie auswählen, um den Eigenschaften-Editor für diese Eigenschaft anzuzeigen.
Im Eigenschaften-Editor können Sie auf die Schaltfläche Makros klicken, um die verfügbaren Makros und deren aktuelle Werte anzuzeigen. Die folgende Abbildung zeigt den Eigenschaften-Editor für die Eigenschaft Zusätzliche Includeverzeichnisse, nachdem auf die Schaltfläche Makros geklickt wurde. Wenn das Kontrollkästchen Von übergeordneten Oder Projektstandard erben aktiviert ist und Sie einen neuen Wert hinzufügen, wird dieser an alle Werte angefügt, die derzeit geerbt werden. Wenn Sie das Kontrollkästchen deaktivieren, ersetzt der neue Wert die vererbten Werte. In den meisten Fällen bleibt das Kontrollkästchen aktiviert.
Hinzufügen eines Includeverzeichnisses zu den Standardverzeichnissen
Wenn Sie einem Projekt ein Includeverzeichnis hinzufügen, ist es wichtig, nicht alle Standardverzeichnisse außer Kraft zu setzen. Die richtige Methode zum Hinzufügen eines Verzeichnisses besteht darin, den neuen Pfad anzufügen, z. B. "C:\MyNewIncludeDir\
", und dann das $(IncludePath)
Makro an den Eigenschaftswert anfügen.
Schnelles Suchen und Durchsuchen aller Eigenschaften
Die Eigenschaftenseite Alle Optionen (unter dem Knoten Konfigurationseigenschaften>C/C++ im Dialogfeld Eigenschaftenseiten ) bietet eine schnelle Möglichkeit zum Durchsuchen und Durchsuchen der Eigenschaften, die im aktuellen Kontext verfügbar sind. Über ein spezielles Suchfeld und eine einfache Syntax können Sie Ergebnisse filtern:
Kein Präfix:
Suche nur in den Eigenschaftennamen (untergeordnete Zeichenfolge ohne Berücksichtigung der Groß-/Kleinschreibung)
"/
" oder "-
":
Suche nur in den Compilerschaltern (Präfix ohne Berücksichtigung der Groß-/Kleinschreibung)
v
:
Suche nur in Werten (untergeordnete Zeichenfolge ohne Berücksichtigung der Groß-/Kleinschreibung)
Festlegen von Umgebungsvariablen für einen Build
Der MSVC-Compiler (cl.exe) erkennt bestimmte Umgebungsvariablen, insbesondere LIB
, LIBPATH
, PATH
und INCLUDE
. Wenn Sie mit der IDE erstellen, werden die Eigenschaften, die auf der Eigenschaftenseite VC++-Verzeichnisse festgelegt sind, verwendet, um diese Umgebungsvariablen festzulegen. Wenn LIB
die Werte , LIBPATH
und INCLUDE
bereits festgelegt wurden, z. B. durch eine Developer-Eingabeaufforderung, werden sie durch die Werte der entsprechenden MSBuild-Eigenschaften ersetzt. Der Build stellt dann den Wert der Eigenschaft ausführbare Verzeichnisse von VC++-Verzeichnissen voran.PATH
Sie können eine benutzerdefinierte Umgebungsvariable festlegen, indem Sie ein benutzerdefiniertes Makro erstellen und dann das Kontrollkästchen Makro als Umgebungsvariable in Buildumgebung festlegen aktivieren.
Festlegen von Umgebungsvariablen für eine Debugsitzung
Erweitern Sie im linken Bereich des Dialogfelds Eigenschaftenseiten die Konfigurationseigenschaften des Projekts, und klicken Sie auf Debugging.
Ändern Sie im rechten Bereich die Projekteinstellungen Umgebung oder Mergeumgebung, und klicken Sie dann auf die Schaltfläche OK.
In diesem Abschnitt
Freigeben oder Wiederverwenden von Visual Studio-Projekteinstellungen
Erstellen einer .props
Datei mit benutzerdefinierten Buildeinstellungen, die freigegeben oder wiederverwendet werden können.
Vererbung von Projekteigenschaften
Beschreibt die Reihenfolge der Auswertung für die .props
- , .targets
- .vcxproj
und -Umgebungsvariablen im Buildprozess.
Ändern von Eigenschaften und Zielen ohne Änderungen an der Projektdatei
Erstellen temporärer Buildeinstellungen, ohne dass eine Projektdatei geändert werden muss
Siehe auch
Visual Studio-Projekte: C++
.vcxproj
und .props
Dateistruktur
Eigenschaftenseite: XML-Dateien