Megosztás a következőn keresztül:


Ú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 használhatja a saját C++ programját ahelyett, hogy beírja a megjelenőt. Egy másik súgócikkből származó C++ kódmintát is használhat.

Előfeltételek

Az útmutató elvégzéséhez telepítenie kell a Visual Studio-t ÉS az opcionális Asztali fejlesztés C++ terheléssel fejlesztési környezetet, VAGY a Visual Studio-hoz készült parancssori Build Eszközöket.

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 Visual Studio Build Tools eszközét a Visual Studio Letöltések lapján.

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++-t nem használhatja egyszerű parancssori ablakban , anélkül, hogy valamilyen előkészületet végez. Szerencsére a 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 windows 10 vagy újabb rendszeren telepítette a Visual Studio 2017-et vagy újabb verzióját, nyissa meg a Start menüt, és válassza a Minden alkalmazás 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 telepítette a Microsoft Visual Studio Build Tools 2015-öt Windows 10 vagy újabb rendszerre, nyissa meg a Start menüt, és válassza a Minden 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 funkcióval a "fejlesztői parancssor" kifejezésre is kereshet, és kiválaszthatja a Visual Studio telepített verziójának megfelelőt. A parancsikon használatával nyissa meg a parancssori ablakot.

  2. Ezután 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 fenti kimenet hasonló a látottakhoz, akkor 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-as hiba, vagy a parancs futtatásakor cl LNK1104 hiba, akkor vagy 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 hello.cpp nevű fájlba.

  3. A Jegyzettömbben adja meg a következő kódsorokat:

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

    Ez a kód egy egyszerű program, amely egy sor 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álunk, létrehozott egy C++ forrásfájlt, hello.cpp, amely készen áll a fordításra.

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

    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
    
    

    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 az a könyvtár, ahová a forrásfájlt mentette. Győződjön meg arról, hogy a forráskódot .cpp fájlnévkiterjesztéssel mentette, nem pedig .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 Dokumentumok könyvtá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 keresse meg a C:\hello mappát a könyvtárfa nézetvezérlőjében. 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üzenet jelenik meg, mint például 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.

    Megjegyzés:

    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álunk, lefordított és futtatott egy C++ programot a parancssori eszközökkel.

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 létrehoz projekteket a felhasználói mappában, egy forrás\repos almappában. A régebbi verziók dokumentumok\Visual Studio-verzió<>\Projektek mappába helyezhetik a projekteket.

Ha olyan programot szeretne lefordítani, amely további forráskódfájlokat tartalmaz, í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 további 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 egy file1.exenevű programot ad ki. Ha a nevet program1.exeszeretné módosítani, adjon hozzá egy /out linker beállítást:

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

További programozási hibák automatikus észlelése érdekében azt javasoljuk, hogy a /W3 vagy /W4 figyelmeztetési szint beállításával fordítson:

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

C++ nyelvi referencia
Projektek és rendszerek létrehozása
MSVC-fordító beállításai