C/C++-Projekte und -Buildsysteme in Visual StudioC/C++ projects and build systems in Visual Studio

Mithilfe von Visual Studio können Sie jede C++-Codebasis mit vollständiger IntelliSense-Unterstützung bearbeiten, kompilieren und erstellen, ohne den Code in ein Visual Studio-Projekt konvertieren oder mit dem MSVC-Toolset kompilieren zu müssen.You can use Visual Studio to edit, compile and build any C++ code base with full IntelliSense support without having to convert that code into a Visual Studio project or compile with the MSVC toolset. Sie können beispielsweise ein plattformübergreifendes CMake-Projekt in Visual Studio auf einem Windows-Computer bearbeiten und dann für Linux mit g++ auf einem Linux-Remotecomputer kompilieren.For example, you can edit a cross-platform CMake project in Visual Studio on a Windows machine, then compile it for Linux using g++ on a remote Linux machine.

C++-KompilierungC++ compilation

Ein C++-Programm zu erstellen (englisch: „build“), bedeutet, Quellcode aus einer oder mehreren Dateien zu kompilieren und diese Dateien dann in eine ausführbare Datei (.exe), eine Dynamic Load Library (.dll) oder eine statische Bibliothek (.lib) zu verknüpfen.To build a C++ program means to compile source code from one or more files and then link those files into an executable file (.exe), a dynamic-load library (.dll) or a static library (.lib).

Die grundlegende C++-Kompilierung umfasst drei Hauptschritte:Basic C++ compilation involves three main steps:

  • Der C++-Präprozessor transformiert alle #Anweisungen und Makrodefinitionen in jeder Quelldatei.The C++ preprocessor transforms all the #directives and macro definitions in each source file. Dadurch wird eine Übersetzungseinheit erstellt.This creates a translation unit.
  • Der C++-Compiler kompiliert jede Übersetzungseinheit in Objektdateien (.obj) und wendet dabei alle festgelegten Compileroptionen an.The C++ compiler compiles each translation unit into object files (.obj), applying whatever compiler options have been set.
  • Der Linker führt die Objektdateien in einer einzelnen ausführbaren Datei zusammen und wendet dabei die festgelegten Linkeroptionen an.The linker merges the object files into a single executable, applying the linker options that have been set.

Das MSVC-ToolsetThe MSVC toolset

Der Microsoft C++-Compiler, der Linker, die Standardbibliotheken und zugehörige Hilfsprogramme bilden das MSVC-Compilertoolset (auch als Toolkette oder "Buildtools" bezeichnet).The Microsoft C++ compiler, linker, standard libraries, and related utilities comprise the MSVC compiler toolset (also called a toolchain or "build tools"). Diese sind in Visual Studio enthalten.These are included in Visual Studio. Sie können das Toolset auch auf der Download-Seite für Buildtools zu Visual Studio 2019 kostenlos als eigenständiges Paket herunterladen und verwenden.You can also download and use the toolset as a standalone package for free from the Build Tools for Visual Studio 2019 download location.

Sie können einfache Programme erstellen, indem Sie den MSVC-Compiler (cl.exe) direkt über die Befehlszeile aufrufen.You can build simple programs by invoking the MSVC compiler (cl.exe) directly from the command line. Der folgende Befehl akzeptiert eine einzelne Quellcodedatei und ruft cl.exe auf, um eine ausführbare Datei mit dem Namen hello.exe zu erstellen:The following command accepts a single source code file, and invokes cl.exe to build an executable called hello.exe:

cl /EHsc hello.cpp

Beachten Sie, dass der Compiler (cl.exe) hier den C++-Präprozessor und den Linker automatisch aufruft, um die endgültige Ausgabedatei zu generieren.Note that here the compiler (cl.exe) automatically invokes the C++ preprocessor and the linker to produce the final output file. Weitere Informationen finden Sie unter Erstellen über die Befehlszeile.For more information, see Building on the command line.

Buildsysteme und ProjekteBuild systems and projects

In den meisten realen Programmen wird ein Buildsystem verwendet, um die Komplexität der Kompilierung mehrerer Quelldateien für mehrere Konfigurationen (d. h. Debuggen vs. Release), mehrere Plattformen (x86, x64, ARM usw.), benutzerdefinierte Buildschritte und sogar mehrere ausführbare und in einer bestimmten Reihenfolge zu kompilierende Dateien zu verwalten.Most real-world programs use some kind of build system to manage complexities of compiling multiple source files for multiple configurations (i.e. debug vs. release), multiple platforms (x86, x64, ARM, and so on), custom build steps, and even multiple executables that must be compiled in a certain order. Sie nehmen Einstellungen in einer Buildkonfigurationsdatei vor, und das Buildsystem akzeptiert diese Datei als Eingabe, bevor es den Compiler aufruft.You make settings in a build configuration file(s), and the build system accepts that file as input before it invoke the compiler. Die Quellcodedateien und Buildkonfigurationsdateien, die zum Erstellen einer ausführbaren Datei erforderlich sind, werden als Projekt bezeichnet.The set of source code files and build configuration files needed to build an executable file is called a project.

In der folgenden Liste werden verschiedene Optionen für Visual Studio-Projekte (C++) angezeigt:The following list shows various options for Visual Studio Projects - C++:

  • Erstellen Sie ein Visual Studio-Projekt mithilfe der Visual Studio-IDE, und konfigurieren Sie es mithilfe von Eigenschaftenseiten.create a Visual Studio project by using the Visual Studio IDE and configure it by using property pages. Visual Studio-Projekte erzeugen Programme, die unter Windows ausgeführt werden.Visual Studio projects produce programs that run on Windows. Eine Übersicht finden Sie unter Kompilieren und Erstellen in der Visual Studio-Dokumentation.For an overview, see Compiling and Building in the Visual Studio documentation.

  • Öffnen Sie einen Ordner, der eine Datei „CMakeLists.txt“ enthält.open a folder that contains a CMakeLists.txt file. CMake-Unterstützung ist in Visual Studio integriert.CMake support is integrated into Visual Studio. Sie können die IDE zum Bearbeiten, Testen und Debuggen verwenden, ohne die CMake-Dateien in irgendeiner Weise zu ändern.You can use the IDE to edit, test and debug without modifying the CMake files in any way. So können Sie im selben CMake-Projekt arbeiten wie andere Benutzer, die möglicherweise andere Editoren verwenden.This enables you to work in the same CMake project as others who might be using different editors. CMake ist der empfohlene Ansatz für die plattformübergreifende Entwicklung.CMake is the recommended approach for cross-platform development. Weitere Informationen finden Sie unter CMake-Projekte.For more information, see CMake projects.

  • Öffnen Sie einen losen Ordner von Quelldateien ohne Projektdatei.open a loose folder of source files with no project file. Visual Studio bedient sich der Heuristik, um die Dateien zu erstellen.Visual Studio will use heuristics to build the files. Dies ist eine einfache Methode, um kleine Konsolenanwendungen zu kompilieren und auszuführen.This is an easy way to compile and run small console applications. Weitere Informationen finden Sie unter „Ordner öffnen“-Projekte.For more information, see Open Folder projects.

  • Öffnen Sie einen Ordner, der ein Makefile oder eine beliebige andere Buildsystemkonfigurationsdatei enthält.open a folder that contains a makefile, or any other build system configuration file. Sie können Visual Studio so konfigurieren, dass beliebige Buildbefehle aufgerufen werden, indem Sie dem Ordner JSON-Dateien hinzufügen.You can configure Visual Studio to invoke any arbitrary build commands by adding JSON files to the folder. Weitere Informationen finden Sie unter „Ordner öffnen“-Projekte.For more information, see Open Folder projects.

  • Öffnen Sie in Visual Studio ein Windows-Makefile.Open a Windows makefile in Visual Studio. Weitere Informationen finden Sie unter NMAKE-Referenz.For more information, see NMAKE Reference.

MSBuild über die BefehlszeileMSBuild from the command line

Sie können MSBuild von der Befehlszeile aus aufrufen, indem Sie eine VCXPROJ-Datei zusammen mit Befehlszeilenoptionen übergeben.You can invoke MSBuild from the command line by passing it a .vcxproj file along with command-line options. Diese Vorgehensweise erfordert gute Kenntnisse von MSBuild und wird nur empfohlen, wenn dies unbedingt erforderlich ist.This approach requires a good understanding of MSBuild, and is recommended only when absolutely necessary. Weitere Informationen finden Sie unter MSBuild.For more information, see MSBuild.

In diesem AbschnittIn This Section

Visual Studio-Projekte Erstellen und Konfigurieren von C++-Projekten in Visual Studio mithilfe seines nativen Buildsystems (MSBuild)Visual Studio projects How to create, configure, and build C++ projects in Visual Studio using its native build system (MSBuild).

CMake-Projekte Programmieren, Erstellen und Bereitstellen von CMake-Projekten in Visual StudioCMake projects How to code, build, and deploy CMake projects in Visual Studio.

„Ordner öffnen“-Projekte Verwenden von Visual Studio, um C++-Projekte auf der Grundlage beliebiger Buildsysteme oder ohne ein Buildsystem zu programmieren, zu erstellen undOpen Folder projects How to use Visual Studio to code, build and deploy C++ projects based on any arbitrary build system, or no build system. bereitzustellenat all.

Releasebuilds Erstellen und Troubleshooting optimierter Releasebuilds für die Bereitstellung an EndbenutzerRelease builds How to create and troubleshoot optimized release builds for deployment to end users.

Verwenden des MSVC-Toolsets über die BefehlszeileUse the MSVC toolset from the command line
Erläutert, wie der C/C++-Compiler und die Buildtools direkt über die Befehlszeile anstatt mithilfe der Visual Studio-IDE verwendet werden.Discusses how to use the C/C++ compiler and build tools directly from the command line rather than using the Visual Studio IDE.

Erstellen von DLLs in Visual Studio Erstellen, Debuggen und Bereitstellen von C/C++-DLLs (freigegebene Bibliotheken) in Visual StudioBuilding DLLs in Visual Studio How to create, debug and deploy C/C++ DLLs (shared libraries) in Visual Studio.

Exemplarische Vorgehensweise: Erstellen und Verwenden einer statischen Bibliothek Erstellen einer LIB-BinärdateiWalkthrough: Creating and Using a Static Library How to create a .lib binary file.

Erstellen isolierter C/C++-Anwendungen und paralleler Assemblys Beschreibt das Bereitstellungsmodell für Windows-Desktopanwendungen basierend auf dem Konzept isolierter Anwendungen und paralleler Assemblys.Building C/C++ Isolated Applications and Side-by-side Assemblies Describes the deployment model for Windows Desktop applications, based on the idea of isolated applications and side-by-side assemblies.

Konfigurieren von C++-Projekten für 64-Bit-x64-Ziele Verwenden der MSVC-Buildtools für 64-Bit-x64-HardwareConfigure C++ projects for 64-bit, x64 targets How to target 64-bit x64 hardware with the MSVC build tools.

Konfigurieren von C++-Projekten für ARM-Prozessoren Verwenden der MSVC-Buildtools für ARM-HardwareConfigure C++ projects for ARM processors How to use the MSVC build tools to target ARM hardware.

Optimieren Ihres Codes Optimieren Ihres Codes auf unterschiedliche Weise, einschließlich programmgeführter OptimierungenOptimizing Your Code How to optimize your code in various ways including program guided optimizations.

Konfigurieren von Programmen für Windows XP Verwenden der MSVC-Buildtools für Windows XPConfiguring Programs for Windows XP How to target Windows XP with the MSVC build tools.

Referenz zur C/C++-ErstellungC/C++ Building Reference
Bietet Links zu Referenzartikeln für das Erstellen von Programmen in C++, zu Compiler- und Linkeroptionen und verschiedenen Buildtools.Provides links to reference articles about program building in C++, compiler and linker options, and various build tools.