Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Visual Studio bevat een opdrachtregel-C- en C++-compiler. U kunt het gebruiken om alles te maken, van eenvoudige console-apps tot Universeel Windows-platform-apps, desktop-apps, apparaatstuurprogramma's en .NET-onderdelen.
In dit scenario maakt u een eenvoudig C++-programma in 'Hallo wereld'-stijl met behulp van een teksteditor en compileert u het vervolgens op de opdrachtregel. Als u de Visual Studio IDE wilt uitproberen in plaats van de opdrachtregel te gebruiken, raadpleegt u Walkthrough: Werken met projecten en oplossingen (C++) of de Visual Studio IDE gebruiken voor C++ Desktop Development.
In dit scenario kunt u uw eigen C++-programma gebruiken in plaats van het programma te typen dat wordt weergegeven. U kunt ook een C++-codevoorbeeld uit een ander Help-artikel gebruiken.
Vereiste voorwaarden
Als u deze handleiding wilt voltooien, moet u ofwel Visual Studio en de optionele workload Desktopontwikkeling met C++, of de opdrachtregel-Build Tools voor Visual Studio hebben geïnstalleerd.
Visual Studio is een IDE (Integrated Development Environment ). Het ondersteunt een volledige editor, resourcemanagers, foutopsporingsprogramma's en compilers voor veel talen en platforms. Versies die beschikbaar zijn, zijn de gratis Visual Studio Community-editie en alle versies kunnen ondersteuning bieden voor C- en C++-ontwikkeling. Zie C++-ondersteuning installeren in Visual Studio voor meer informatie over het downloaden en installeren van Visual Studio.
Met Build Tools voor Visual Studio worden alleen de opdrachtregelcompilers, hulpprogramma's en bibliotheken geïnstalleerd die u nodig hebt om C- en C++-programma's te bouwen. Het is perfect voor bouwlabs of voor leslokaaloefeningen en installeert relatief snel. Als u alleen de opdrachtregelprogramma's wilt installeren, zoekt u op de pagina Downloads van Visual Studio naar Build Tools voor Visual Studio.
Voordat u een C- of C++-programma op de opdrachtregel kunt bouwen, controleert u of de hulpprogramma's zijn geïnstalleerd en kunt u deze openen vanaf de opdrachtregel. Microsoft C++ (MSVC) heeft complexe vereisten voor de opdrachtregelomgeving om de hulpprogramma's, headers en bibliotheken te vinden die worden gebruikt. U kunt Microsoft C++ niet gebruiken in een opdrachtpromptvenster zonder enige voorbereiding. Gelukkig installeert Microsoft C++ snelkoppelingen waarmee u een ontwikkelaarscommandprompt kunt starten met een vooraf ingestelde omgeving voor command-line-builds. Helaas zijn de namen van de snelkoppelingen voor de opdrachtprompt voor ontwikkelaars en waar ze zich bevinden verschillend in bijna elke versie van Visual Studio en in verschillende versies van Windows. Uw eerste walkthrough-taak is het vinden van de juiste taak die u kunt gebruiken.
Opmerking
Met een opdrachtpromptsnelkoppeling voor ontwikkelaars worden automatisch de juiste paden ingesteld voor de compiler en hulpprogramma's en voor eventuele vereiste headers en bibliotheken. U moet deze omgevingswaarden zelf instellen als u een normaal opdrachtpromptvenster gebruikt. Zie De MSVC-toolset gebruiken vanaf de opdrachtregel voor meer informatie. U wordt aangeraden een snelkoppeling naar de opdrachtprompt voor ontwikkelaars te gebruiken in plaats van uw eigen opdrachtprompt te bouwen.
Een opdrachtprompt voor ontwikkelaars openen
Als u Visual Studio 2017 of hoger hebt geïnstalleerd in Windows 10 of hoger, opent u het menu Start en kiest u Alle apps. Scroll naar beneden en open de Visual Studio-map (niet de Visual Studio-toepassing). Kies Opdrachtprompt voor ontwikkelaars voor VS om het opdrachtpromptvenster te openen.
Als u Microsoft Visual Studio Build Tools 2015 in Windows 10 of hoger hebt geïnstalleerd, opent u het menu Start en kiest u Alle apps. Schuif omlaag en open de map Visual Studio Build Tools . Kies x86 Native Tools-opdrachtprompt om het opdrachtpromptvenster te openen.
U kunt ook de Windows-zoekfunctie gebruiken om te zoeken naar 'opdrachtprompt voor ontwikkelaars' en er een te kiezen die overeenkomt met uw geïnstalleerde versie van Visual Studio. Gebruik de snelkoppeling om het opdrachtpromptvenster te openen.
Controleer vervolgens of de C++-opdrachtprompt voor ontwikkelaars correct is ingesteld. Voer in het opdrachtpromptvenster in
clen controleer of de uitvoer er ongeveer als volgt uitziet:C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise>cl Microsoft (R) C/C++ Optimizing Compiler Version 19.10.25017 for x86 Copyright (C) Microsoft Corporation. All rights reserved. usage: cl [ option... ] filename... [ /link linkoption... ]Er kunnen verschillen zijn in de huidige adreslijst- of versienummers. Deze waarden zijn afhankelijk van de versie van MSVC en alle geïnstalleerde updates. Als de bovenstaande uitvoer vergelijkbaar is met wat u ziet, kunt u C- of C++-programma's bouwen op de opdrachtregel.
Opmerking
Als u een fout krijgt zoals 'cl' wordt niet herkend als een interne of externe opdracht, beveiligbaar programma of batchbestand', fout C1034, of fout LNK1104 wanneer u de
clopdracht uitvoert, gebruikt u geen opdrachtprompt voor ontwikkelaars of is er iets mis met de installatie van MSVC. U moet dit probleem oplossen voordat u kunt doorgaan.Als u de snelkoppeling naar de opdrachtprompt voor ontwikkelaars niet kunt vinden of als u een foutbericht krijgt wanneer u invoert
cl, kan er een probleem zijn met de MSVC-installatie. Installeer het MSVC-onderdeel opnieuw in Visual Studio of Visual Studio Build Tools. Ga pas verder met de volgende sectie als declopdracht werkt. Zie Visual Studio installeren voor meer informatie over het installeren en oplossen van problemen met MSVC.Opmerking
Afhankelijk van de versie van Windows op de computer en de systeembeveiligingsconfiguratie, moet u mogelijk met de rechtermuisknop klikken om het snelmenu voor de snelkoppeling voor de opdrachtprompt voor ontwikkelaars te openen en vervolgens Uitvoeren als administrator te kiezen om het programma dat u maakt te bouwen en uit te voeren door deze procedure te volgen.
Een C++-bronbestand maken en compileren op de opdrachtregel
In het ontwikkelaarsopdrachtpromptvenster voert u
md c:\helloin om een map te maken en voert u vervolgenscd c:\helloin om naar die map te gaan. In deze map worden zowel het bronbestand als het gecompileerde programma gemaakt.Voer
notepad hello.cppin het opdrachtpromptvenster in.Kies Ja wanneer u in Kladblok wordt gevraagd een nieuw bestand te maken. Met deze stap opent u een leeg Kladblok-venster, zodat u uw code kunt invoeren in een bestand met de naam hello.cpp.
Voer in Kladblok de volgende regels met code in:
#include <iostream> using namespace std; int main() { cout << "Hello, world, from Microsoft C++!" << endl; }Deze code is een eenvoudig programma dat één regel tekst op het scherm schrijft en vervolgens afsluit. Om fouten te minimaliseren, kopieer deze code en plak deze in Kladblok.
Sla uw werk op! In Kladblok, op het menu Bestand, kies Opslaan.
Gefeliciteerd, u hebt een C++-bronbestand gemaakt, hello.cpp, dat klaar is om te compileren.
Ga terug naar het opdrachtpromptvenster voor ontwikkelaars. Voer
dirbij de opdrachtprompt in om de inhoud van de map c:\hello weer te geven. U zou het bronbestand hello.cpp in de directorylijst moeten zien, welke er als volgt uitziet:c:\hello>dir Volume in drive C has no label. Volume Serial Number is CC62-6545 Directory of c:\hello 05/24/2016 05:36 PM <DIR> . 05/24/2016 05:36 PM <DIR> .. 05/24/2016 05:37 PM 115 hello.cpp 1 File(s) 115 bytes 2 Dir(s) 571,343,446,016 bytes freeDe datums en andere details verschillen op uw computer.
Opmerking
Als u het broncodebestand niet ziet,
hello.cppcontroleert u of de huidige werkmap in de opdrachtprompt deC:\hellomap is die u hebt gemaakt. Zorg er ook voor dat dit de map is waarin u het bronbestand hebt opgeslagen. En zorg ervoor dat u de broncode hebt opgeslagen met een.cppbestandsnaamextensie, niet een.txtextensie. Uw bronbestand wordt automatisch opgeslagen in de huidige map als een.cppbestand als u Kladblok opent bij de opdrachtprompt met behulp van denotepad hello.cppopdracht. Het gedrag van Kladblok verschilt als u het op een andere manier opent: Kladblok voegt standaard een.txtextensie toe aan nieuwe bestanden wanneer u ze opslaat. Het bestand wordt ook standaard opgeslagen in de map Documenten . Als u het bestand wilt opslaan met een.cppextensie in Kladblok, kiest u Bestand>opslaan als. Navigeer in het dialoogvenster Opslaan als naar uwC:\hellomap in het besturingselement mapstructuurweergave. Gebruik vervolgens de vervolgkeuzelijst Opslaan als type om Alle bestanden (*.*) te selecteren. Voerhello.cppin het veld Bestandsnaam in en kies Opslaan om te bewaren.Voer op de opdrachtprompt voor ontwikkelaars
cl /EHsc hello.cppin om je programma te compileren.De cl.exe compiler genereert een .obj-bestand dat de gecompileerde code bevat en voert vervolgens de linker uit om een uitvoerbaar programma met de naam hello.exete maken. Deze naam wordt weergegeven in de regels met uitvoergegevens die door de compiler worden weergegeven. De uitvoer van de compiler moet er ongeveer als volgt uitzien:
c:\hello>cl /EHsc hello.cpp Microsoft (R) C/C++ Optimizing Compiler Version 19.10.25017 for x86 Copyright (C) Microsoft Corporation. All rights reserved. hello.cpp Microsoft (R) Incremental Linker Version 14.10.25017.0 Copyright (C) Microsoft Corporation. All rights reserved. /out:hello.exe hello.objOpmerking
Als u een fout krijgt zoals 'cl' wordt niet herkend als een interne of externe opdracht, beveiligbaar programma of batchbestand, fout C1034 of fout LNK1104, is de opdrachtprompt voor ontwikkelaars niet correct ingesteld. Ga terug naar de sectie Een opdrachtprompt voor ontwikkelaars openen voor informatie over het oplossen van dit probleem.
Opmerking
Als u een andere compiler- of linkerfout of -waarschuwing krijgt, controleert u de broncode om eventuele fouten te corrigeren, slaat u deze op en voert u de compiler opnieuw uit. Gebruik het zoekvak om te zoeken naar het foutnummer voor informatie over specifieke fouten.
Als u het hello.exe-programma wilt uitvoeren, voert u bij de opdrachtprompt
helloin.Het programma geeft deze tekst weer en sluit vervolgens af.
Hello, world, from Microsoft C++!Gefeliciteerd, u hebt een C++-programma gecompileerd en uitgevoerd met behulp van de opdrachtregelprogramma's.
Volgende stappen
Dit voorbeeld 'Hallo wereld' is ongeveer zo eenvoudig als een C++-programma kan krijgen. Echte wereldprogramma's hebben meestal headerbestanden, meer bronbestanden en een koppeling naar bibliotheken.
U kunt de stappen in dit scenario gebruiken om uw eigen C++-code te bouwen in plaats van de voorbeeldcode te typen die wordt weergegeven. Met deze stappen kunt u ook veel C++-codevoorbeeldprogramma's bouwen die u elders vindt. U kunt uw broncode plaatsen en uw apps bouwen in elke schrijfbare map. Visual Studio IDE maakt standaard projecten aan in uw gebruikersmap, in een submap genaamd source\repos. Oudere versies kunnen projecten in een map Documents\Visual Studio <version>\Projects plaatsen.
Als u een programma met extra broncodebestanden wilt compileren, voert u deze allemaal op de opdrachtregel in, zoals:
cl /EHsc file1.cpp file2.cpp file3.cpp
Met /EHsc de opdrachtregeloptie wordt de compiler geïnstrueerd om standaardgedrag van C++-uitzonderingen in te schakelen. Zonder dit kunnen geworpen uitzonderingen leiden tot niet vernietigde objecten en resourcelekken. Zie /EH (Exception Handling Model) voor meer informatie.
Wanneer u extra bronbestanden opgeeft, gebruikt de compiler het eerste invoerbestand om de programmanaam te maken. In dit geval wordt een programma met de naam file1.exeuitgevoerd. Als u de naam wilt wijzigen in program1.exe, voegt u de linkeroptie /out toe:
cl /EHsc file1.cpp file2.cpp file3.cpp /link /out:program1.exe
En als u automatisch meer programmeerfouten wilt ondervangen, raden we u aan om te compileren met behulp van de optie /W3 of /W4-waarschuwingsniveau :
cl /W4 /EHsc file1.cpp file2.cpp file3.cpp /link /out:program1.exe
De compiler, cl.exe, heeft nog veel meer opties. U kunt ze toepassen om uw code te bouwen, optimaliseren, fouten op te sporen en te analyseren. Voer de opdrachtprompt cl /? voor ontwikkelaars in voor een snelle lijst. U kunt ook compileren en linken afzonderlijk uitvoeren en linkeropties toepassen in complexere buildscenario's. Zie C/C++ Bouwreferentie voor meer informatie over compiler- en linkeropties en -gebruik.
U kunt NMAKE en makefiles, MSBuild- en projectbestanden, of CMake, gebruiken om complexere projecten op de opdrachtregel te configureren en te bouwen. Zie NMAKE Reference, MSBuild en CMake-projecten in Visual Studio voor meer informatie over het gebruik van deze hulpprogramma's.
De C- en C++-talen zijn vergelijkbaar, maar niet hetzelfde. De MSVC-compiler maakt gebruik van een eenvoudige regel om te bepalen welke taal moet worden gebruikt wanneer uw code wordt gecompileerd. De MSVC-compiler behandelt standaard bestanden die eindigen op .c als C-broncode en bestanden die eindigen op .cpp als C++-broncode. Als u wilt afdwingen dat de compiler alle bestanden als C++ onafhankelijk van de bestandsnaamextensie behandelt, gebruikt u de optie /TP-compiler .
De MSVC-compiler bevat een C Runtime Library (CRT) die voldoet aan de ISO C99-standaard, met kleine uitzonderingen. Draagbare code compileert en wordt uitgevoerd zoals verwacht. Bepaalde verouderde bibliotheekfuncties en verschillende POSIX-functienamen worden afgeschaft door de MSVC-compiler. De functies worden ondersteund, maar de voorkeursnamen zijn gewijzigd. Zie Beveiligingsfuncties in crt en compilerwaarschuwing (niveau 3) C4996 voor meer informatie.
Zie ook
Naslaginformatie over C++-taal
Projecten en bouwsystemen
MSVC-compileropties