Návod: Kompilace nativního programu C++ v příkazovém řádku
Visual Studio obsahuje kompilátor C a C++ příkazového řádku. Můžete ho použít k vytvoření všeho od základních konzolových aplikací až po Univerzální platforma Windows aplikace, desktopové aplikace, ovladače zařízení a komponenty .NET.
V tomto názorném postupu vytvoříte základní program "Hello, World" ve stylu C++ pomocí textového editoru a pak ho zkompilujete na příkazovém řádku. Pokud chcete místo použití příkazového řádku vyzkoušet integrované vývojové prostředí sady Visual Studio, přečtěte si téma Návod: Práce s projekty a řešeními (C++) nebo Použití integrovaného vývojového prostředí sady Visual Studio pro vývoj desktopových aplikací jazyka C++.
V tomto názorném postupu můžete místo zadání zobrazeného programu použít vlastní program C++. Nebo můžete použít ukázku kódu C++ z jiného článku nápovědy.
Požadavky
K dokončení tohoto návodu musíte mít nainstalovanou sadu Visual Studio a volitelný vývoj desktopových aplikací pomocí úloh C++ nebo nástroje sestavení příkazového řádku pro Visual Studio.
Visual Studio je integrované vývojové prostředí (IDE). Podporuje plnohodnotný editor, správce prostředků, ladicí programy a kompilátory pro mnoho jazyků a platforem. Dostupné verze zahrnují bezplatnou edici Visual Studio Community a všechny můžou podporovat vývoj v jazyce C a C++. Informace o tom, jak stáhnout a nainstalovat Visual Studio, naleznete v tématu Instalace podpory jazyka C++ v sadě Visual Studio.
Nástroje sestavení pro Visual Studio nainstalují pouze kompilátory, nástroje a knihovny příkazového řádku, které potřebujete k sestavení programů jazyka C a C++. Je ideální pro sestavení cvičení nebo cvičení v učebnách a poměrně rychle se instaluje. Pokud chcete nainstalovat jenom nástroje příkazového řádku, vyhledejte na stránce Stažené soubory sady Visual Studio nástroje buildu pro Visual Studio.
Než budete moct vytvořit program C nebo C++ na příkazovém řádku, ověřte, že jsou nástroje nainstalované a že k nim máte přístup z příkazového řádku. Visual C++ má složité požadavky pro prostředí příkazového řádku k vyhledání nástrojů, hlaviček a knihoven, které používá. Visual C++ nemůžete použít v okně příkazového řádku bez přípravy. Visual C++ naštěstí nainstaluje klávesové zkratky pro spuštění příkazového řádku pro vývojáře, který má prostředí nastavené pro sestavení příkazového řádku. Názvy zástupců příkazového řádku pro vývojáře a jejich umístění se bohužel liší téměř ve všech verzích Visual C++ a v různých verzích Windows. Vaším prvním návodem je nalezení správného návodu, který se má použít.
Poznámka:
Zástupce příkazového řádku vývojáře automaticky nastaví správné cesty pro kompilátor a nástroje a pro všechny požadované hlavičky a knihovny. Tyto hodnoty prostředí musíte nastavit sami, pokud používáte běžné okno příkazového řádku . Další informace naleznete v tématu Použití sady nástrojů MSVC z příkazového řádku. Místo vytváření vlastních příkazů doporučujeme použít zástupce příkazového řádku pro vývojáře.
Otevření příkazového řádku pro vývojáře
Pokud jste nainstalovali Visual Studio 2017 nebo novější ve Windows 10 nebo novějším, otevřete nabídka Start a zvolte Všechny aplikace. Posuňte se dolů a otevřete složku sady Visual Studio (ne aplikaci Visual Studio). Zvolte Příkazový řádek pro vývojáře pro VS a otevřete okno příkazového řádku.
Pokud jste nainstalovali Microsoft Visual C++ Build Tools 2015 ve Windows 10 nebo novějším, otevřete nabídku Start a zvolte Všechny aplikace. Posuňte se dolů a otevřete složku Visual C++ Build Tools . Příkazový řádek nativních nástrojů jazyka Visual C++ 2015 x86 otevřete okno příkazového řádku.
Funkci vyhledávání ve Windows můžete použít také k vyhledání příkazového řádku pro vývojáře a k výběru toho, který odpovídá vaší nainstalované verzi sady Visual Studio. Pomocí zástupce otevřete okno příkazového řádku.
Dále ověřte, že je správně nastavený příkazový řádek vývojáře Visual C++. V okně příkazového řádku zadejte a ověřte
cl
, že výstup vypadá přibližně takto: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... ]
V aktuálním adresáři nebo číslech verzí můžou být rozdíly. Tyto hodnoty závisí na verzi jazyka Visual C++ a na všech nainstalovaných aktualizacích. Pokud je výše uvedený výstup podobný tomu, co vidíte, můžete na příkazovém řádku sestavit programy jazyka C nebo C++.
Poznámka:
Pokud se při spuštění příkazu zobrazí chyba "cl" není rozpoznána jako interní nebo externí příkaz, spustitelný program nebo dávkový soubor," chyba C1034 nebo chyba LNK1104 při spuštění
cl
příkazu, pak buď nepoužíváte příkazový řádek pro vývojáře, nebo je něco špatně s instalací visual C++. Než budete moct pokračovat, musíte tento problém vyřešit.Pokud nemůžete najít zástupce příkazového řádku pro vývojáře nebo pokud se při zadávání
cl
zobrazí chybová zpráva, může dojít k problému s instalací jazyka Visual C++. Zkuste přeinstalovat komponentu Visual C++ v sadě Visual Studio nebo přeinstalovat nástroje Microsoft Visual C++ Build Tools. Nepřechávejte k další části, dokudcl
příkaz nebude fungovat. Další informace o instalaci a řešení potíží se sadou Visual C++ naleznete v tématu Instalace sady Visual Studio.Poznámka:
V závislosti na verzi systému Windows v počítači a konfiguraci zabezpečení systému možná budete muset pravým tlačítkem myši otevřít místní nabídku zástupce příkazového řádku pro vývojáře a potom zvolit Spustit jako správce , aby se úspěšně sestavil a spustil program, který vytvoříte podle tohoto návodu.
Vytvoření zdrojového souboru Visual C++ a jeho kompilace na příkazovém řádku
V okně příkazového řádku vývojáře zadejte
md c:\hello
, abyste vytvořili adresář, a pak zadejtecd c:\hello
, aby se tento adresář změnil. Tento adresář je místo, kde se vytvoří zdrojový soubor i zkompilovaný program.Zadejte
notepad hello.cpp
do okna příkazového řádku.Po zobrazení výzvy k vytvoření nového souboru zvolte Ano . Tento krok otevře prázdné okno Poznámkového bloku, které je připravené k zadání kódu do souboru s názvem hello.cpp.
V Poznámkovém bloku zadejte následující řádky kódu:
#include <iostream> using namespace std; int main() { cout << "Hello, world, from Visual C++!" << endl; }
Tento kód je jednoduchý program, který napíše jeden řádek textu na obrazovce a pak ukončí. Pokud chcete minimalizovat chyby, zkopírujte tento kód a vložte ho do Poznámkového bloku.
Uložte si práci! V Poznámkovém bloku v nabídce Soubor zvolte Uložit.
Blahopřejeme, vytvořili jste zdrojový soubor C++ hello.cpp, který je připravený ke kompilaci.
Přepněte zpět do okna příkazového řádku pro vývojáře. Do příkazového řádku zadejte
dir
seznam obsahu adresáře c:\hello. Ve výpisu adresáře by se měl zobrazit zdrojový soubor hello.cpp, který vypadá nějak takto: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 free
Data a další podrobnosti se budou v počítači lišit.
Poznámka:
Pokud soubor zdrojového kódu nevidíte, ujistěte se, že aktuální pracovní adresář v příkazovém
C:\hello
řádku je adresář,hello.cpp
který jste vytvořili. Ujistěte se také, že se jedná o adresář, do kterého jste uložili zdrojový soubor. A ujistěte se, že jste zdrojový kód uložili s příponou.cpp
názvu souboru, ne s příponou.txt
. Zdrojový soubor se uloží do aktuálního adresáře jako.cpp
soubor automaticky, pokud otevřete Poznámkový blok na příkazovém řádku pomocínotepad hello.cpp
příkazu. Chování Poznámkového bloku se liší, pokud ho otevřete jiným způsobem: Poznámkový blok ve výchozím nastavení při ukládání připojí příponu.txt
k novým souborům. Výchozí nastavení je také ukládání souborů v adresáři Dokumenty . Pokud chcete soubor uložit s příponou.cpp
v Poznámkovém bloku, zvolte File Save As (Uložit jako).> V dialogovém okně Uložit jako přejděte doC:\hello
složky v ovládacím prvku stromového zobrazení adresáře. Potom pomocí rozevíracího seznamu Uložit jako typ vyberte Všechny soubory (*.*). Zadejtehello.cpp
do ovládacího prvku Úpravy názvu souboru a pak zvolte Uložit soubor.Na příkazovém řádku vývojáře zadejte
cl /EHsc hello.cpp
, aby se program zkompiloval.Kompilátor cl.exe vygeneruje soubor .obj, který obsahuje zkompilovaný kód, a potom spustí linker pro vytvoření spustitelného programu s názvem hello.exe. Tento název se zobrazí v řádcích výstupních informací, které kompilátor zobrazí. Výstup kompilátoru by měl vypadat nějak takto:
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.obj
Poznámka:
Pokud se zobrazí chyba typu cl není rozpoznána jako interní nebo externí příkaz, spustitelný program nebo dávkový soubor, chyba C1034 nebo chyba LNK1104, příkazový řádek pro vývojáře není správně nastavený. Informace o tom, jak tento problém vyřešit, najdete v části Otevřít vývojářský příkazový řádek .
Poznámka:
Pokud se zobrazí jiná chyba kompilátoru nebo linkeru nebo upozornění, zkontrolujte zdrojový kód a opravte případné chyby, uložte ho a spusťte kompilátor znovu. Pokud chcete získat informace o konkrétních chybách, vyhledejte číslo chyby pomocí vyhledávacího pole.
Pokud chcete spustit hello.exe program, zadejte
hello
na příkazovém řádku .Program zobrazí tento text a ukončí:
Hello, world, from Visual C++!
Blahopřejeme, zkompilovali jste a spustili program C++ pomocí nástrojů příkazového řádku.
Další kroky
Tento příklad "Hello, World" je asi tak jednoduchý jako program C++, který může získat. Skutečné programy obvykle obsahují soubory hlaviček, více zdrojových souborů a odkazy na knihovny.
Kroky v tomto názorném postupu můžete použít k vytvoření vlastního kódu C++ místo zadání ukázkového kódu, který je zobrazený. Tyto kroky také umožňují vytvořit mnoho ukázkových programů kódu C++, které najdete jinde. Zdrojový kód můžete vložit a sestavit aplikace do libovolného zapisovatelného adresáře. Integrované vývojové prostředí sady Visual Studio ve výchozím nastavení vytváří projekty ve složce uživatele ve zdrojové podsložce\repos . Starší verze můžou umístit projekty do složky Documents\Visual Studio <version>\Projects .
Pokud chcete zkompilovat program, který obsahuje další soubory zdrojového kódu, zadejte je všechny na příkazovém řádku, například:
cl /EHsc file1.cpp file2.cpp file3.cpp
Možnost /EHsc
příkazového řádku dává kompilátoru pokyn, aby povolil standardní chování zpracování výjimek jazyka C++. Bez ní mohou vyvolané výjimky vést k nedestruovaným objektům a únikům prostředků. Další informace najdete v tématu /EH (model zpracování výjimek).
Když zadáte další zdrojové soubory, kompilátor použije první vstupní soubor k vytvoření názvu programu. V tomto případě vypíše program s názvem file1.exe. Pokud chcete změnit název na program1.exe, přidejte možnost linkeru /out :
cl /EHsc file1.cpp file2.cpp file3.cpp /link /out:program1.exe
A pokud chcete zachytit více programovacích chyb automaticky, doporučujeme zkompilovat pomocí možnosti upozornění /W3 nebo /W4 :
cl /W4 /EHsc file1.cpp file2.cpp file3.cpp /link /out:program1.exe
Kompilátor, cl.exe, má mnoho dalších možností. Můžete je použít k sestavení, optimalizaci, ladění a analýze kódu. Rychlý seznam zobrazíte tak, že zadáte cl /?
příkazový řádek pro vývojáře. V složitějších scénářích sestavení můžete také kompilovat a odkazovat samostatně a použít možnosti linkeru. Další informace o možnostech kompilátoru a použití linkeru najdete v tématu Referenční dokumentace k sestavení jazyka C/C++.
Ke konfiguraci a sestavování složitějších projektů na příkazovém řádku můžete použít NMAKE a soubory pravidel, MSBuild a soubory projektů nebo CMake. Další informace o použití těchto nástrojů naleznete v tématu NMAKE Reference, MSBuild a CMake projekty v sadě Visual Studio.
Jazyky C a C++ jsou podobné, ale ne stejné. Kompilátor MSVC používá jednoduché pravidlo k určení jazyka, který se má použít při kompilaci kódu. Kompilátor MSVC ve výchozím nastavení zpracovává soubory, které končí .c
jako zdrojový kód jazyka C, a soubory, které končí .cpp
jako zdrojový kód jazyka C++. Chcete-li vynutit, aby kompilátor zpracovával všechny soubory jako C++ nezávisle na příponě názvu souboru, použijte možnost kompilátoru /TP .
Kompilátor MSVC obsahuje knihovnu C Runtime Library (CRT), která odpovídá standardu ISO C99 s dílčími výjimkami. Přenosný kód se obvykle zkompiluje a spouští podle očekávání. Některé zastaralé funkce knihovny a několik názvů funkcí POSIX je v kompilátoru MSVC zastaralé. Funkce jsou podporované, ale upřednostňované názvy se změnily. Další informace naleznete v tématu Funkce zabezpečení v CRT a Upozornění kompilátoru (úroveň 3) C4996.
Viz také
Referenční dokumentace jazyka C++
Projekty a systémy sestavení
Parametry kompilátoru MSVC