Útmutató: Natív C++ program összeállítása a parancssorban

A Visual Studio tartalmaz egy C és C++ parancssori fordítót. Segítségével mindent létrehozhat az alapszintű konzolalkalmazásoktól az univerzális Windows Platform-alkalmazásokig, asztali alkalmazásokig, eszközillesztőkig és .NET-összetevőkig.

Ebben az útmutatóban egy egyszerű, "Hello, World" stílusú C++ programot hoz létre egy szövegszerkesztő program használatával, majd lefordítja a parancssorban. Ha a parancssor használata helyett a Visual Studio IDE-t szeretné kipróbálni, tekintse meg az útmutatót: A projektek és megoldások használata (C++) vagy a Visual Studio IDE használata a C++ asztali fejlesztéshez.

Ebben az útmutatóban saját C++ programját használhatja az itt használt gépelés helyett. Vagy használhat egy C++ kódmintát egy másik cikkből.

Előfeltételek

Az útmutató elvégzéséhez szüksége van vagy a Visual Studióra és az opcionális Desktop development with C++ számítási feladatkörre, vagy a Visual Studio parancssori Build Tools eszközeire.

A Visual Studio egy integrált fejlesztési környezet (IDE). Számos nyelvhez és platformhoz támogatja a teljes körű szerkesztőt, az erőforrás-kezelőket, a hibakeresőket és a fordítókat. Az elérhető verziók közé tartozik az ingyenes Visual Studio Community kiadás, és mindegyik támogatja a C és C++ fejlesztést. A Visual Studio letöltéséről és telepítéséről további információt a C++ telepítése a Visual Studióban című témakörben talál.

A Visual Studio buildelési eszközei csak a C és C++ programok létrehozásához szükséges parancssori fordítókat, eszközöket és kódtárakat telepítik. Tökéletes tesztkörnyezetek vagy osztálytermi gyakorlatok készítéséhez, és viszonylag gyorsan telepíthető. Ha csak a parancssori eszközöket szeretné telepíteni, keresse meg a Build Tools for Visual StudioVisual Studio Downloads.

Mielőtt C vagy C++ programot építhet a parancssorba, ellenőrizze, hogy telepítve vannak-e az eszközök, és a parancssorból érheti el őket. A Microsoft C++ (MSVC) összetett követelményekkel rendelkezik a parancssori környezethez az általa használt eszközök, fejlécek és kódtárak megkereséséhez.

A Microsoft C++ nem használható egyszerű parancssori ablakban anélkül, hogy valamilyen előkészítést végez. Microsoft C++ parancsikonokat telepít, amelyekkel elindíthat egy fejlesztői parancssort, amely a parancssori buildekhez beállított környezetet tartalmazza. Sajnos a fejlesztői parancssori parancsikonok neve és a tartózkodási helye a Visual Studio szinte minden verziójában és a Windows különböző verzióiban eltérő. Az első áttekintési feladat az, hogy megtaláld a megfelelőt.

Megjegyzés:

A fejlesztői parancssori parancsikon automatikusan beállítja a megfelelő elérési utakat a fordítóhoz és az eszközökhöz, valamint a szükséges fejlécekhez és kódtárakhoz. Ha normál parancssori ablakot használ, ezeket a környezeti értékeket saját maga kell beállítania. További információ: Az MSVC-eszközkészlet használata a parancssorból. Javasoljuk, hogy a saját létrehozása helyett használjon fejlesztői parancssori parancsikont.

Fejlesztői parancssor megnyitása

  1. Ha Visual Studio 2017-Windows 10 vagy újabb verziójával rendelkezik, nyissa meg a Start menüt, és válassza a All apps lehetőséget. Görgessen le, és nyissa meg a Visual Studio mappát (nem a Visual Studio alkalmazást). A parancssorablak megnyitásához válassza a VS fejlesztői parancssorát .

    Ha rendelkezik Microsoft Visual Studio Build Tools 2015-tel Windows 10 vagy újabb rendszeren, nyissa meg a Start menüt, és válassza az Összes alkalmazás lehetőséget. Görgessen le, és nyissa meg a Visual Studio Build Tools mappát. Válassza az x86 natív eszközök parancssorát a parancssor ablakának megnyitásához.

    A Windows keresési függvény használatával is kereshet fejlesztői parancssort , és kiválaszthatja a Visual Studio telepített verziójának megfelelőt. A parancsikon használatával nyissa meg a parancssori ablakot.

  2. Ellenőrizze, hogy a C++ fejlesztői parancssor megfelelően van-e beállítva. A parancssori ablakban adja meg cl és ellenőrizze, hogy a kimenet a következőképpen néz ki:

    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... ]
    

Az aktuális könyvtárban vagy verziószámokban eltérések lehetnek. Ezek az értékek az MSVC verziójától és a telepített frissítésektől függenek. Ha a kimenet hasonló a látottakhoz, készen áll C vagy C++ programok létrehozására a parancssorban.

Megjegyzés:

Ha olyan hibaüzenetet kap, mint például a "cl" nem ismerhető fel belső vagy külső parancsként, operatív programként vagy kötegelt fájlként," C1034-hiba, vagy a parancs futtatásakor cl LNK1104 hiba, akkor nem használ fejlesztői parancssort, vagy valami nincs rendben az MSVC telepítésével. A folytatáshoz ki kell javítania ezt a problémát.

Ha nem találja a fejlesztői parancssori parancsikont, vagy ha a beíráskor clhibaüzenet jelenik meg, akkor az MSVC telepítése problémát okozhat. Próbálja meg újratelepíteni az MSVC-összetevőt a Visual Studióban vagy a Visual Studio Build Toolsban. Ne lépjen tovább a következő szakaszra, amíg a cl parancs nem működik. Az MSVC telepítéséről és hibaelhárításáról további információt a Visual Studio telepítése című témakörben talál.

Megjegyzés:

A windowsos számítógép verziójától és a rendszerbiztonsági konfigurációtól függően előfordulhat, hogy a jobb gombbal kattintva meg kell nyitnia a fejlesztői parancssor parancsikonjának helyi menüjét, majd a Futtatás rendszergazdaként lehetőséget választva sikeresen elkészítheti és futtathatja a létrehozott programot az útmutató követésével.

C++ forrásfájl létrehozása és fordítása a parancssorban

  1. A fejlesztői parancssori ablakban adja meg md C:\hello , hogy létrehozzon egy könyvtárat, majd írja be cd C:\hello , hogy az adott könyvtárra váltson. Ebben a könyvtárban jön létre mind a forrásfájl, mind a lefordított program.

  2. Írja be notepad hello.cpp a parancssori ablakban.

    Válassza az Igen lehetőséget, amikor a Jegyzettömb új fájl létrehozását kéri. Ez a lépés megnyitja a Jegyzettömb üres ablakát, amely készen áll arra, hogy beírja a kódot egy nevű hello.cppfájlba.

  3. Írja be a következő kódot a Jegyzettömbbe:

    #include <iostream>
    using namespace std;
    int main()
    {
        cout << "Hello, world, from Microsoft C++!" << endl;
    }
    

    Ez a kód egy egyszerű program, amely egy sornyi szöveget ír a képernyőn, majd kilép. A hibák minimalizálása érdekében másolja ki ezt a kódot, és illessze be a Jegyzettömbbe.

  4. Mentse a munkáját! A Jegyzettömbben válassza a Fájl menü Mentés parancsát.

    Gratulálok! Létrehozott egy C++ forrásfájlt, hello.cppamely készen áll a fordításra.

  5. Váltson vissza a fejlesztői parancssori ablakra. A dir könyvtár tartalmának listázásához írja be C:\hello a parancssorba. A forrásfájlnak hello.cpp a könyvtárlistában kell megjelennie, amely a következőképpen néz ki:

    C:\hello>dir
     Volume in drive C is Local Disk
     Volume Serial Number is AA11-BB22
    
     Directory of C:\hello
    
    04/28/2026  01:26 PM    <DIR>          .
    04/28/2026  01:26 PM    <DIR>          ..
    04/28/2026  01:27 PM               117 hello.cpp
                   1 File(s)            117 bytes
    

    A dátumok és egyéb adatok a számítógépen eltérőek lesznek.

    Megjegyzés:

    Ha nem látja a forráskódfájlját, hello.cpp győződjön meg arról, hogy a parancssor aktuális munkakönyvtára az a C:\hello könyvtár, amelyet létrehozott. Győződjön meg arról is, hogy ez a hely az a könyvtár, ahová a forrásfájlt mentette.

    Győződjön meg róla, hogy a forráskódot .cpp fájlnévkiterjesztéssel mentette, nem .txt kiterjesztéssel. A forrásfájlt automatikusan menti .cpp fájlként az aktuális könyvtárba, ha a notepad hello.cpp parancsot használva megnyitja a Jegyzettömböt a parancssorban.

    A Jegyzettömb működése eltérő, ha más módon nyitja meg: Alapértelmezés szerint a Jegyzettömb a mentéskor hozzáfűzi a .txt bővítményt az új fájlokhoz. Emellett alapértelmezés szerint fájlokat ment a Documents címtárba. Ha a fájlt egy .cpp kiterjesztéssel szeretné menteni a Jegyzettömbben, válassza a Fájl>mentése másként lehetőséget. A Mentés másként párbeszédpanelen navigáljon a C:\hello mappához a könyvtárfa nézetben. Ezután a Mentés típus legördülő menüben válassza a Minden fájl (*.*) lehetőséget. Írja be hello.cpp a Fájlnév szerkesztőmezőbe, majd válassza a Mentés lehetőséget a fájl mentéséhez.

  6. A fejlesztői parancssorban írja be a cl /EHsc hello.cpp parancsot a program fordításához.

    A cl.exe fordító létrehoz egy .obj fájlt, amely tartalmazza a lefordított kódot, majd futtatja a linkert egy hello.exenevű végrehajtható program létrehozásához. Ez a név a fordító által megjelenített kimeneti információk soraiban jelenik meg. A fordító kimenetének a következőképpen kell kinéznie:

    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
    

    Megjegyzés:

    Ha olyan hibaüzenetet kap, mint a "cl" nem ismerhető fel belső vagy külső parancsként, kezelhető programként vagy kötegelt fájlként, C1034-hiba vagy LNK1104 hiba, a fejlesztői parancssor nincs megfelelően beállítva. A probléma megoldásáról a Fejlesztői parancssor megnyitása szakaszban talál további információt.

    Ha egy másik fordító- vagy linkerhiba vagy figyelmeztetés jelenik meg, tekintse át a forráskódot a hibák kijavításához, majd mentse, és futtassa újra a fordítót. Az egyes hibákra vonatkozó információkért keresse meg a hibaszámot a keresőmezőben.

  7. A hello.exe program futtatásához írja be a parancssorba hello.

    A program megjeleníti ezt a szöveget, és kilép:

    Hello, world, from Microsoft C++!
    

    Gratulálok! A parancssori eszközök használatával lefordította és futtatta a C++-programot.

Következő lépések

Ez a "Hello, World" példa olyan egyszerű, amennyire egy C++ program egyszerű lehet. A valós programok általában fejlécfájlokkal, több forrásfájllal és tárakra mutató hivatkozásokkal rendelkeznek.

Az útmutató lépéseit követve saját C++ kódot hozhat létre ahelyett, hogy beírná a megjelenő mintakódot. Ezekkel a lépésekkel számos máshol található C++ kódmintát is létrehozhat. A forráskódot bármilyen írható könyvtárban elhelyezheti, és létrehozhatja az alkalmazásokat. Alapértelmezés szerint a Visual Studio IDE a felhasználói mappában, egy source\repos almappában hoz létre projekteket. A régebbi verziók egy Documents\Visual Studio \{version}\Projects mappába helyezhetik a projekteket.

Ha más forráskódfájlokat tartalmazó programot szeretne lefordítani, írja be őket a parancssorba, például:

cl /EHsc file1.cpp file2.cpp file3.cpp

A /EHsc parancssori beállítás arra utasítja a fordítót, hogy engedélyezze a szokásos C++ kivételkezelési viselkedést. Nélküle a feldobott kivételek nem megsemmisített objektumokat és az erőforrások elszivárgását eredményezhetik. További információ: /EH (Exception Handling Model).

Ha más forrásfájlokat ad meg, a fordító az első bemeneti fájlt használja a programnév létrehozásához. Ebben az esetben kiad egy file1.exe nevű programot. A név módosításához program1.exe adjon hozzá egy /out linker opciót:

cl /EHsc file1.cpp file2.cpp file3.cpp /link /out:program1.exe

Ha minél több programozási hibát szeretne automatikusan észlelni, javasoljuk, hogy a fordításhoz a /W3 vagy a /W4 figyelmeztetési szintet használja:

cl /W4 /EHsc file1.cpp file2.cpp file3.cpp /link /out:program1.exe

A fordító cl.exeszámos további lehetőséggel rendelkezik. Ezeket alkalmazhatja a kód összeállítására, optimalizálására, hibakeresésére és elemzésére. A gyors lista megjelenítéséhez írja be cl /? a fejlesztői parancssorban. Összetettebb fordítási forgatókönyvekben a fordítást és linkelést külön-külön is elvégezheti, és alkalmazhatja a linkelési beállításokat. A fordító és linker beállításaival és használatával kapcsolatos további információkért lásd a C/C++ építési referenciát.

Az NMAKE és a fájlok, az MSBuild és a projektfájlok, illetve a CMake használatával összetettebb projekteket konfigurálhat és hozhat létre a parancssorban. További információ az eszközök használatáról: NMAKE Referencia, MSBuild és CMake projektek a Visual Studióban.

A C és a C++ nyelvek hasonlóak, de nem azonosak. Az MSVC fordító egy egyszerű szabályt használ annak meghatározására, hogy melyik nyelvet használja a kód lefordításakor. Az MSVC-fordító alapértelmezés szerint a .c végződésű fájlokat C forráskódként, míg a .cpp végződésű fájlokat C++ forráskódként kezeli. Ha azt szeretné, hogy a fordító az összes fájlt C++-ként kezelje a fájlnévkiterjesztéstől függetlenül, használja a /TP fordító lehetőséget.

Az MSVC fordító tartalmaz egy C Futtatókörnyezeti kódtárat (CRT), amely kisebb kivételekkel megfelel az ISO C99 szabványnak. Általában a hordozható kód a várakozásoknak megfelelően fordul le és fut. Az MSVC fordító bizonyos elavult könyvtárfüggvényeket és több POSIX-függvénynevet elavultnak nyilvánít. A függvények támogatottak, de a preferált nevek megváltoztak. Lásd: Biztonsági funkciók a CRT-ben és Fordító figyelmeztetése (3. szint) C4996.

Lásd még