์ƒˆ์†Œ์‹

๐Ÿค IN DEPTH CAKE/Coding-WIKI

<VSCode ๋ฅผ C++ IDE๋กœ ์“ฐ๊ธฐ> Mac์—์„œ C++ ๊ฐœ๋ฐœํ•˜๊ธฐ

  • -

 

 

์ผ๋ฐ˜์ ์œผ๋กœ C++ ๊ฐœ๋ฐœํ•œ๋‹ค๊ณ ํ•˜๋ฉด ๋Œ€ํ‘œ์ ์œผ๋กœ ์“ฐ๋Š” IDE๊ฐ€ Visual Studio์ด์ง€๋งŒ, ๋งฅ์—์„œ๋Š” Visual Studio๊ฐ€ C++ ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ์ง€์›ํ•ด์ฃผ์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ž˜์„œ ๋Œ€์ฒด์ œ๋กœ ๋งŽ์ด ์“ฐ๋Š”๊ฒŒ VSCode๋‹ค.

 

 

โ–ผโ–ผโ–ผ VS Code ์„ค์น˜๋Š” ์š”๊ธฐ โ–ผโ–ผโ–ผ

 

Download Visual Studio Code - Mac, Linux, Windows

Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows. Download Visual Studio Code to experience a redefined code editor, optimized for building and debugging modern web and cloud applications.

code.visualstudio.com

 

 

 

 


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 ํŒŒ์ผ ๋ฟ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋„ ์ปดํŒŒ์ผ์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ์„ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ์–ด์š”.

 

 

 

 

 

 

 

 

๋ โ—ผ๏ธŽ

๋ฐ˜์‘ํ˜•
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

# ๋กœ๋”ฉ ํ™”๋ฉด ๋™์ž‘ ์ฝ”๋“œ(Code) ์„ค์ •ํ•˜๊ธฐ