์ผ๋ฐ์ ์ผ๋ก 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 ํ์ผ ๋ฟ ์๋๋ผ ๋ค๋ฅธ ์ฝ๋๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ์ปดํ์ผ์ด ๊ฐ๋ฅํ ๊ฒ์ ํ์ธํด๋ณผ ์ ์์ด์.
๋ โผ๏ธ
'IN DEPTH CAKE > Coding-WIKI' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
sphinx-js ๋ก javascript ์ฝ๋ ๋ฌธ์ํํ๊ธฐ (0) | 2023.05.03 |
---|---|
No module named 'tensorboard' ํด๊ฒฐ (0) | 2023.03.28 |
[pytorch] RuntimeError: one_hot is only applicable to index tensor (0) | 2023.03.18 |
[python] Anaconda ํ๊ฒฝ yamlํ์ผ export ๋ฐ import (ํ๊ฒฝ ์์ฑ create, ํ์ฑํ activate ๋ฑ) (0) | 2023.03.17 |
[C++] reference ๋ณ์์ ๋ํ ์ดํด (pointer์ ๋น๊ต) (1) | 2023.03.14 |