์ผ๋ฐ์ ์ผ๋ก C++ ๊ฐ๋ฐํ๋ค๊ณ ํ๋ฉด ๋ํ์ ์ผ๋ก ์ฐ๋ IDE๊ฐ Visual Studio์ด์ง๋ง, ๋งฅ์์๋ Visual Studio๊ฐ C++ ๊ฐ๋ฐํ๊ฒฝ์ ์ง์ํด์ฃผ์ง ์๋๋ค. ๊ทธ๋์ ๋์ฒด์ ๋ก ๋ง์ด ์ฐ๋๊ฒ VSCode๋ค.
โผโผโผ VS Code ์ค์น๋ ์๊ธฐ โผโผโผ
VSCode๊ฐ ์ด๋ฏธ ์ค์น๋ผ์๋ค๋ฉด ์ด์ ๋ณธ๊ฒฉ์ ์ธ ์
ํ
์์.
์
ํ
์ ๋ญํด์ผํ๋๊ณ ๋ฌผ์ด๋ณด์ ๋ค๋ฉด, C++ ์ปดํ์ผ & ๋๋ฒ๊น
์ ์ํ ํ์ฅํฉ ์ค์น + ํ์ฅํฉ์ ์ฉ๋์ ๋ง๊ฒ ์ปจํผ๊ท๋ ์ด์
์ก์์ฃผ๋๊ฑฐ๋ค.
VSCode์์ C++ ํ์ฅํฉ ์
ํ
ํ๊ธฐ
์ผ๋จ, ๋งฅ์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก C, C++ ์ปดํ์ผ๋ฌ ํ๋ก ํธ์๋์ธ clang์ด๋ ๋๋ฒ๊น
ํด์ธ lldb๊ฐ ์ค์น๋ผ์์ด์.
ํฐ๋ฏธ๋์์ ๋ค์๊ณผ ๊ฐ์ด ์ค์น ์ฌ๋ถ ํ์ธํด๋ณด์ธ์.
ํ์ฅํฉ์ค์น
์ด์ C/C++ ํ์ฅ์ ์ค์นํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ C๋ C++์ ์คํํ๊ธฐ์ํ ํ์ฅํฉ์ผ๋ก ๋ค์ํ ๋ฒ์ ์ด ์๋๋ฐ, ์ฐ๋ฆฌ๋ ์ฝ๋ ๋ฌ๋๋ฅผ ์ธ๊ฒ๋๋ค. ์ผ๋จ, ๊ธฐ๋ณธ ํ์ฅํฉ์ธ C/C++๋ถํฐ ์ค์นํ ๊ฒ์.
VSCode๋ฅผ ์คํํ ํ Shif + Command + P ๋ฅผ ๋๋ฅด๋ฉด ๋ช
๋ น์ด ํ๋ ํธ๊ฐ ๋น๋๋ค.
๊ฒ์์ฐฝ์ extension install ์ ์น๊ณ , Extensions: Install Extensions๋ฅผ ํด๋ฆญํด์ฃผ์ธ์.
๊ทธ๋ฌ๋ฉด Extension์ ๊ฒ์ํ๊ณ ์ค์นํ ์ ์๋ ํ์ด์ง๊ฐ ๋น๋๋ค.
์ฐ๋ฆฌ๋ Microsoft์์ ๊ฐ๋ฐํ ํ์ฅํฉ์ธ C/C++ ์ ์ค์นํด์ค๊ฑฐ์์.
๊ทธ๋ค์์ Code Runner๋ฅผ ์ค์นํด์ค๊ฒ์. ์๋
์์ ์ญํ ์ ๋ญ๋, ์๋ ๊ทธ๋ฅ compiler๋ก ์ปดํ์ผํ๋ ค๋ฉด ๋ช
๋ น์ด๋ ์ต์
๋ค ๋ฃ์ด์ค์ผํ๋๋ฐ, ๊ทธ๊ฑฐ๋ฅผ ๊ฐํธํ๊ฒ ํด์ฃผ๋ ๋
์์
๋๋ค. Install ๋ฒํผ ๋๋ฌ์ ์ค์นํด๋ณผ๊ฒ์.
ํ์ฅํฉ ์ค์
์ด์ C++ ์ธ์ด์ ๋ง์ถฐ์ code runner์ ์ปจํผ๊ท๋ ์ด์
์ ์ค์ ํด์ค๊ฒ๋๋ค.
๋ฐฉ๊ธ ์ค์นํ ํ์ด์ง์ ํฑ๋๋ฐํด > Extension setting ๋๋ฌ์ฃผ์ธ์.
๊ทธ๋ฆฌ๊ณ ์ ๋ Run In Terminal ์ต์
์ ์ผ์ค๊ฒ๋๋ค. ํฐ๋ฏธ๋์์ ์คํํ๋๋ก ํ ๊ฑฐ๊ฑฐ๋ ์.
๊ทธ๋ฆฌ๊ณ Executor Map ์ ์๋ setting.json edit์ ๋๋ฌ์ ์ด๋ค ํํ๋ก ์คํํ๊ฒ ํ ์ง ์ค์ ํด์ฃผ๊ฒ ์ต๋๋ค.
๊ทธ๋ฌ๋ฉด ๊ฐ ์ธ์ด๋ณ๋ก ์คํ์ ์ด๋ค ๋ช
๋ น์ด๋ฅผ ์คํ์์ผ์ค์ง๋ฅผ ๋ณด์ฌ์ค์.
๊ทธ ์ค์ cpp๋ถ๋ถ์ ์ํ๋๋๋ก ํธ์งํด์ฃผ๋ฉด ๋ฉ๋๋ค.
์ ์๋ณธ setting.json์ ์ด๋ฐํํ๋ก ์๊ฒผ์ด์.
์ ๋ g++ ์ปดํ์ผ๋ฌ ๋ฒ์ ์ std=c++17๋ก ์ค์ ํด์ค๊ฒ์ (๋ฒ์ ์ ๋น์ ๋ง์๋๋ก ํ์๋ฉด ๋ผ์๐)
"cpp": "cd $dir && g++ -std=c++17 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt"
์ด๋ ๊ฒ์.
๊ทผ๋ฐ ์ฐธ๊ณ ๋ก, ์ด๋ ๊ฒ๋ง ์ปดํ์ผ ๋ช
๋ น์ด๋ฅผ ์ค์ ํ๋ฉด ๋จ์ผ c++ ํ์ผ๋ง ์ปดํ์ผ์ด ๋๊ฒ ์ฃ ($fileName ๋ง ์ธ์๋ก ๋๊ฒจ์ฃผ๊ณ ์์ผ๋๊น์) ์ฐ๋ฆฌ๋ ํ๋ก์ ํธ ๋จ์์ ๋น๋๋ฅผ ์ํ๋๋ฐ ๋ง์ด์ฃ . ํ๋ง๋๋ก, ํ์ฌ ํด๋ ๋ด์ ์๋ ๋ชจ๋ cpp ํ์ผ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ปดํ์ผํ๊ธธ ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ช
๋ น์ด๋ฅผ *.cpp๋ก ๋ฐ๊ฟ์ฃผ์๋ฉด ๋ผ์.
"cpp": "cd $dir && g++ -std=c++17 *.cpp -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
์ ์ฅํ๋ฉด ๋. ๊ทธ๋ฌ๋ฉด ์ฐ์ธก ์๋จ์ ์คํ ๋ฒํผ ( โท )์ผ๋ก ์ปดํ์ผ ํ ์คํ์ด ๊ฐ๋ฅํฉ๋๋ค. ์คํ ๋ฒํผ์ ๋๋ฅด๋ฉด ์ฐ๋ฆฌ๊ฐ ์ค์ ํ ๋ช
๋ น์ด๊ฐ ์๋์ผ๋ก ํฐ๋ฏธ๋์ ์
๋ ฅ๋๊ณ ์คํ๋๋ ๊ตฌ์กฐ์์.
๋ณธ๊ฒฉ์ ์ผ๋ก ์ฝ๋ฉํด๋ณผ๊น? (๋๋ฒ๊น
๋ชจ๋ ์ค์ ๋ฐ ์คํ ํ๊ธฐ)
๊ฐ๋ฐ์ ํ๋ค๋ฉด, ๋จ์ํ ์คํ์ด ์๋๋ผ, ๋น๋์ ๋๋ฒ๊น
์ ๊ฐ์ดํ๊ณ ์ถ์ด์. ์ด์ ํ๋ก์ ํธ ํด๋๋ฅผ ํ๋ ์ด๊ณ ๊ทธ ์์ ์์์ cpp ํ์ผ์ ํ๋ ๋ง๋ค์ด๋ด
์๋ค. ๊ทธ๋ฆฌ๊ณ Terminal > Configure Default Build Task ๋ฅผ ๋๋ฌ์ฃผ์ธ์. ๊ทธ๋ฆฌ๊ณ clang++ ํ์ฑ ํ์ผ ๋น๋ ํด๋ฆญ.
๊ทธ๋ฌ๋ฉด ์๋์ผ๋ก tasks.json์ด๋ผ๋ ํ์ผ์ด ์์ฑ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ args์ ๋ค์๊ณผ ๊ฐ์ด ์ต์
๋ค์ ์ถ๊ฐํด์ค๊ฑฐ์์.
1) std=c++17 ๋ฒ์ ์ ์ฐ๊ฒ ๋ค. (8๋ฒ์งธ ์ค)
2) ํ๋์ cpp ํ์ผ๋ง ์ปดํ์ผํ์ง์๊ณ , ํ๋ก์ ํธ ๋ด์ ๋ชจ๋ cpp ํ์ผ์ ์ปดํ์ผํ๊ฒ ๋ค. (12๋ฒ์งธ ์ค ์ฃผ์ํ, 13๋ฒ์งธ ์ค ์ถ๊ฐ)
์ด๋ ๊ฒ ์ค์ ํ์ผ์ ์ ์ฅํ๊ณ ๋๋ฉด ์ด์ ๋๋ฒ๊ทธ ๋ชจ๋๋ ์ง์์ด๋ฉ๋๋ค. ์๊น๋ ์คํ ๋ฒํผ์ด์๋ค๋ฉด ๋๋ฒ๊ทธ ๋ฒํผ (Debug C/C++ File)์ ๋๋ฌ์ ์ํ๋ ์ง์ ์์ ๋ฉ์ถ๊ณ ๋๋ฒ๊น
์ ํ ์ ์์ด์.
๊ทธ๋ฆฌ๊ณ ํ์ฌ ํ๋ก์ ํธ ํด๋์์๋ ๋ชจ๋ cpp ํ์ผ์ ์ปดํ์ผํ๋๋ก ํ์๊ธฐ๋๋ฌธ์, main.cpp ํ์ผ ๋ฟ ์๋๋ผ ๋ค๋ฅธ ์ฝ๋๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ์ปดํ์ผ์ด ๊ฐ๋ฅํ ๊ฒ์ ํ์ธํด๋ณผ ์ ์์ด์.
๋ โผ๏ธ