[itk] Számítástechnika kezdőknek

C++ programozás kezdőknek - Visual Studio telepítése és alapvető használata

[2020. április 08.] [ christo161 ]

A Visual Studio egy C++ programozáshoz használható integrált fejlesztői környezet. Ránézésre olyasmi, mint egy szövegszerkesztő, de programozást segítő kényelmi funkciókkal van ellátva.

visual_studio_hello_world.png

Ez itt a C++ programozás kezdőknek tananyag legelső részének folytatása.
A tananyag következő része itt található: első program

A Visual Studio az egyik legnépszerűbb integrált fejlesztői környezet, ami natívan (emulátor, virtuális gép vagy wine nélkül) csak Windowson telepíthető és használható.
A tananyag ezen részének írásakor a Visual Studionak nem létezik Linuxos verziója, a macOS-es verziója pedig nem támogatja a C++ nyelven történő fejlesztést (itt láthatjuk, hogy mit támogat), de ez persze idővel változhat.

Ne tévesszük össze a Visual Studiot a Visual Studio Code-al. Az utóbbi csak egy szövegszerkesztő. Ha VSCode-ot használunk C++ fejlesztéshez, akkor habár a kódot megírhatjuk vele, azt követően parancssorban kell majd fordítanunk. Érdemes azt is megtanulni, de ez a tananyagrész most nem arról szól.

Noha sokan az egyik legkényelmesebb és legokosabb fejlesztői környezetnek tartják a Visual Studiot, de kétség kívül hátránya, hogy sok helyet foglal és gépigénye is van.

Érdemes megjegyezni, hogy a Visual Studio nem g++ fordítóval dolgozik, hanem MSVC-vel, melyek között vannak különbségek (ugyanazt a kódot némileg másképp értelmezik), de a tananyag egyszerű példái esetén ebből jó eséllyel semmit nem fogunk észrevenni.
Az MSVC fordító, linker, standard library (közös nevén toolchain) a Visual Studiotól függetlenül is letölthető innen, ha esetleg parancssorból szeretnénk fordításhoz használni. Ha csak a Visual Studiot szeretnénk letölteni és telepíteni, ennek a letöltésére nem lesz szükség, mert ezt tartalmazza a Visual Studio.

Letöltés, telepítés

A Visual Studionak van ingyenes verziója, amit Visual Studio Community-nek hívnak. Innen tudjuk letölteni:
https://visualstudio.microsoft.com/vs/community/

A Visual Studioban természetesen nem csak C++-ban programozhatunk, illetve C++ nyelven is különböző programokat hozhatunk létre (pl. Windows ablakos, 3D-s játék, mobiltelefonos).
Ebben a tananyagban csak parancssoros programokat írunk, amihez elég a desktop C++ azon elemeit kiválasztani, amik az alábbi képen láthatóak.
Nem érdemes olyan dolgokat telepíteni, amire úgy gondoljuk, hogy később majd jól jöhet, mert ezek elég sok helyet foglalnak, és minél több dolgot telepítünk, az a Visual Studiot annál jobban lassítja.  

visual_studio_install_cpp_components.png

Megjegyzés: ha a Windows 10 SDK-t nem telepítjük, az alábbi képen látható hibaüzenetet kapjuk. Ami érdekes, mert a parancssoros C++ programok fordításához elég kéne hogy legyen egy fordítót telepíteni, mert minden C++ fordítóhoz jár C++ standard library, ami tartalmazza a képen látható fájlokat, amiket a hibaüzenet hiányol. Nem vagyok egy nagy Visual Studio guru, ha valaki esetleg tudja, hogy hogyan kell Windows 10 SDK nélkül Visual Studioban fordítani, ne tartsa titokban :) Bár mondjuk annyira nem egy nagy hátrány, ha telepíteni kell a Windows 10 SDK-t.

visual_studio_missing_standard_library_header_file.png

Hogyan kezdhetünk el C++-ban parancssoros programokat írni Visual Studioban?

Ha valamilyen fejlesztői környezetet használunk (jelen esetben Visual Studiot), érdemes minden program számára külön projektet létrehoznunk. Például azért mert minden projekthez egyedi beállításokat használhatunk, vagy mert a több forrásfájlból álló programok fordítása könnyebb (bár igaz, az első példaprogramjaink egy forrásfájlból fognak csak állni).

Új projekt létrehozása

Viszonylag magától értetődő. Create a new project.

visual_studio_new_project.png

Console App.

visual_studio_new_project_console.png

Én azt szoktam tanácsolni, hogy a projekt neve és az egész elérési út ne tartalmazzon se szóközt se ékezetet (szóköz helyett alsóvonalat javaslok használni, vagyis ezt: _ ), bár ezzel a Visual Studio újabb verzióiban nincs gond, a CodeBlocks például nem szereti. Persze jó eséllyel ezeket az egyszerű példaprogramokat nem sokan fogják különböző fejlesztői környezetben, különböző fordítókkal próbálgatni, de jó tudni, hogy az ékezet és a szóköz a fájlok és könyvtárak nevében egyes fejlesztői környezetekben gondot okozhat.

A kitöltendő mezőkben észrevehetjük, hogy nem csak a projektnek adhatunk nevet, hanem egy úgynevezett solutionnek is. Egy solutionben több projekt lehet.
Ez akkor lehet hasznos, ha több fájlból álló, bonyolult programok esetén a program jól elkülöníthető részei képezik a projekteket, a solution pedig a teljes programot, vagy esetleg különböző programoknak vannak közösen használt részei, amiket nem szeretnénk minden programba egyenként bemásolni. De ha csak simán csoportosítani akarunk forrásfájlok tekintetében egymástól független, de hasonló témájú projekteket, akkor azokat is belerakhatjuk egy solutionbe. Pl. solution neve: tanfolyam_feladatai vagy course_examples, egyes projekt projektek nevei: 001_hello_world, 002_variables, satöbbi.
Nem muszáj egy solutionbe több projektet is bepakolni, nyugodtan létrehozhatunk minden projektnek külön solutiont, a legelső példaprogramoknál ez teljesen mindegy. Ekkor az sem baj, ha a solution neve egyezik a projekt nevével.

Azt azért érdemes tudni, hogy egy Visual Studio ablakban egyszerre egy solution lehet megnyitva. Ha azt szeretnénk, hogy egy Visual Studio ablakban egyszerre több projekt legyen megnyitva azt csak úgy érhetjük el, ha egy közös solutionbe belerakjuk az adott projekteket.
Ha egyszerre több solutiont szeretnénk megnyitni akkor többször kell elindítanunk a Visual Studiot.

visual_studio_new_project_destination.png

Fordítás, futtatás

Talán nem annyira magától értetődő, hogy a fordítás és a futtatható program elindítása a Debug menü Start Without Debugging menüponja, hiszen ami nem debuggolás az miért a Debug menüben található, miért nem mondjuk a Build menüben.
Főleg ha azt is figyelembe vesszük, hogy máshol meg ki lehet választani, hogy Debug vagy Release. Ha nem szeretnénk debug (nyomkövető, hibakereső) módban futtatni a programunkat, akkor ezek közül mindegy, hogy melyik van kiválasztva, viszont ha használni szeretnénk a debug módot (Start Debugging menüpont), akkor ahhoz, hogy a debug mód rendeltetésszerűen működjön, Release helyett Debug legyen kiválasztva.

visual_studio_project_compile.png

Ha még egyszer sem volt lefordítva a program, vagy pedig a legutóbbi fordítás óta módosítottuk a forráskódot, akkor az alábbi képen látható dialog box-szal találkozhatunk, ahol értelemszerűen a Yes gombra kell kattintanunk a fordításhoz és a lefordított program elindításához.

visual_studio_project_compile_2.png

Amikor létrehozunk Visual Studioban egy parancssoros programot, a legáltalánosabb példaprogram, a Hello World forráskódja illesztődik be automatikusan a létrehozott projektbe. Ennek futtatása itt látható:

visual_studio_hello_world.png

Projekt hozzáadása solutionhöz

Arról már volt szó, hogy Visual Studioban több projekt akkor lehet egyszerre megnyitva ha egy solutionbe több projektet belepakolunk, vagy esetleg ha többször indítjuk el a Visual Studiot és mindegyikben megnyitunk egy solutiont.

Most az első lehetőségre nézünk példát. Ezt több módon is megtehetjük. Például ha a már meg van nyitva egy projekt akkor a Fájl menü New Project menüpontját választjuk, a megnyíló ablakban a Solution címke alatti drop-down listből kiválaszthatjuk az Add to solution lehetőséget, azt követően pedig azt a solutiont, amihez az új projektet hozzá szeretnénk adni.

visual_studio_add_new_project_to_solution.png

Ezt úgy is megtehetjük, ha a solution nevére jobb gombbal kattintva, vagy a Fájl menüből az Add, majd New Project... menüpontokat választjuk.

visual_studio_add_new_project_to_solution_2.png

Először akár egy üres solutiont is létrehozhatunk, majd azt követően egyessével létrehozhatjuk benne a projekteket.

Aktív projekt

Ha egy solutionben több projekt van, akkor mindig az aktív projekt (aminek a neve félkövér betűstílussal van írva) lesz lefordítva és elindítva, ha a Debug menüben a Start Without Debugging menüpontra kattintunk.

Ahogy az alábbi képen is láthatjuk, hiába van megnyitva a 002_cpp_example, a 001_cpp_example fordul le (lásd Output), mert az az aktív projekt.

visual_studio_active_project.png

Ha egy nem aktív projekt nevére az egér jobb gombjával kattintunk, akkor a Set as Startup Project lehetőséget választva állíthatjuk be aktív projektnek, ami a solution következő megnyitásakor is érvényes marad.

visual_studio_activate_project.png

Debug vs Release

Az eszköztáron, vagy a Build menü Configuration Manager menüpontjában választhatunk a Debug vagy Release fordítási beállítások közül. Az előző tananyagrészben volt szó arról, hogy ezek mit jelentenek. Röviden:
Debug: debug információk elhelyezése a futtatható programban, kódoptimalizálás kikapcsolása
Release: nem lesznek debug információk a futtatható programban, a kódoptimalizálás be lesz kapcsolva, ez a felhasználóknak elkészített verzió

Kiválasztás után a projekt nem fordul újra automatikusan és elképzelhető, hogy egy cleanelésre is szükség lesz.

Ha használni szeretnénk a debug módot, akkor ne a Release legyen kiválasztva, hanem a Debug. Ezt leszámítva a példaprogramoknál jó eséllyel tök mindegy, hogy mi van kiválasztva.

visual_studio_debug_vs_release.png

Clean project

Elképzelhető, hogy egy program forrásfájljaiban módosítottunk valamit, de hiába fordítjuk újra a programot, a futtatás esetén mégsem tapasztalunk változást. Ekkor segíthet, ha töröljük a fordítás eredményét képező fájlokat, vagy ha nem vagyunk benne biztosak, hogy melyek ezek a fájlok, a Build menüből válasszuk a Clean projektnév menüpontot.
Értelemszerűen ezt követően a programunk forrásfájljai érintetlenek maradnak.

visual_studio_clean_project.png

Egyéb

Visual Studio Installer

A Visual Studio Installer segítségével később is telepíthetünk különböző összetevőket, amiket az első telepítéskor elfelejtettünk, vagy később kiderült, hogy mégis szükségünk van rá.

visual_studio_installer.png

visual_studio_installer_modify.png

Egyéb tananyag

A tananyag következő része itt található: első program

A bejegyzés trackback címe:

https://itkezdoknek.blog.hu/api/trackback/id/tr7415598958

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása