๋ฐ์ํ
๐ก ๋ณธ ๋ฌธ์๋ Visual Studio Code๋ฅผ ํ์ฉํ C++ ๋๋ฒ๊น ํ๊ฒฝ ์ธํ ๋ฐฉ๋ฒ์ ๋ํด ์๊ฐํฉ๋๋ค.
์ด์์ฒด์ ๋ณ๋ก ์ง์๋๋ ์ปดํ์ผ๋ฌ์ ์ฐจ์ด๊ฐ ์์ด ์ด์์ฒด์ ๋ณ๋ก ์ผ๋ถ ์์ดํ ์ ์์ผ๋ ๋ณธ์ธ์ ์ด์์ฒด์ ๋ฅผ ํ์ธํ๊ณ ๊ทธ์ ๋ง์ถฐ์ ์งํํ์๊ธฐ ๋ฐ๋๋๋ค.
๋ฏธ๋ฆฌ ์์์ผ ํ ์ (์ฃผ์์ฌํญ)
VSCode์์ ๋๋ฒ๊น ์ ํ๋ก์ ํธ์ ์์์ ์๋ .vscode/ํด๋ ๋ด์ task.json๊ณผ launch.json์ ์๋์ ์ ์ฌํ๊ฒ ๊ตฌ์ฑํฉ๋๋ค. VScode์ ๋๋ฒ๊น ์ ์คํํ๋ฉด launch.json์ด ์คํ๋๋๋ฐ, ์ด๋ preLaunchTask ๋ผ๋ฒจ์ด ์๋ค๋ฉด task.json์์ label์ด ๋์ผํ ๊ฒ์ ์ฐพ๊ณ task.json ์์ ์ ์คํํ ํ launch.json์ด ์คํํฉ๋๋ค. ๋ฐ๋ผ์ task.json์ "label"๊ณผ launch.json์ "preLaunchTask"๋ ๋์ผํด์ผ ํฉ๋๋ค.
ํ๋จ์์ json ํ์ผ์ ๋ํ ์ค๋ช ์ ํด์ค ์์ ์ด๋ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
VSCode C++ ๋๋ฒ๊น ํ๊ฒฝ ์ธํ
1. task.json
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "rm exist build file",
"command": "rm",
"args": [
"-f",
"${workspaceFolder}/Debug/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${workspaceFolder}"
}
},
{
"type": "shell",
"label": "clang++ build active file",
// ๊ธฐ์กด์ ๋น๋ ํ์ผ ์ง์ฐ๊ธฐ
"dependsOn": [
"rm exist build file"
],
"dependsOrder": "sequence",
// "windows" for Windows, "linux" for Linux, and "osx" for macOS.
"linux":{
"command": "/usr/bin/g++",
"args": [
"-g",
"${file}",
"-o",
"Debug/${fileBasenameNoExtension}"
// "${fileDirname}/${fileBasenameNoExtension}"
],
},
"osx":{
"command": "/usr/bin/clang++",
"args": [
"-std=c++17",
"-stdlib=libc++",
"-g",
"${file}",
"-o",
"Debug/${fileBasenameNoExtension}"
],
},
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
2. launch.json
{
// IntelliSense๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฅํ ํน์ฑ์ ๋ํด ์์๋ณด์ธ์.
// ๊ธฐ์กด ํน์ฑ์ ๋ํ ์ค๋ช
์ ๋ณด๋ ค๋ฉด ๊ฐ๋ฆฌํต๋๋ค.
// ์์ธํ ๋ด์ฉ์ ๋ณด๋ ค๋ฉด https://go.microsoft.com/fwlink/?linkid=830387์(๋ฅผ) ๋ฐฉ๋ฌธํ์ธ์.
"version": "0.2.0",
"configurations": [
{
"preLaunchTask": "clang++ build active file",
"request": "launch",
"name": "Build and debug active file",
"type": "cppdbg",
// "windows" for Windows, "linux" for Linux, and "osx" for macOS.
"linux": {
"MIMode": "gdb",
"miDebuggerPath": "/bin/gdb"
},
"osx": {
"MIMode": "lldb"
},
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/Debug/${fileBasenameNoExtension}",
"args": [
// "--gtest_filter=store.*"
],
"stopAtEntry": false,
"environment": [],
"externalConsole": false,
"setupCommands": [
{
"description": "gdb์ ์๋ ์์ ์ง์ ์ฌ์ฉ",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
- "type": cppdbg๋ก ์ค์ ํฉ๋๋ค.
- "program": ๋๋ฒ๊น ํ ์คํํ์ผ์ ์ ๋๊ฒฝ๋ก๋ก ์ค์ ํฉ๋๋ค.
- "args": ๋๋ฒ๊น ํ ์ ์ต์ ์ ์ค์ ํฉ๋๋ค. ํ์ฌ googletest ์ค store๋ง ์คํํ๊ณ ์ ๋ค์๊ณผ ๊ฐ์ด ์ค์ ํ์์ต๋๋ค.
+ VScode: ๋ชจ๋ ์ค๋จ์ ์์ ๋ฉ์ถ๋๋ก ์ค์
- ์ค์ : ์๋จ๋ฐ -> ๊ธฐ๋ณธ์ค์ -> ์ค์ (command + ,)
- ๋ชจ๋ ์ค๋จ์ ์์ ๋ฉ์ถ๊ธฐ: breakpoint ๊ฒ์ ํ 'Debug: Allow Breakpoints Everywhere' ์ฒดํฌ
๋ฐ์ํ
'Study: DeveloperTools(DevTool) > DevTool: IDE' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[IDE] VSCode Springboot ๊ฐ๋ฐํ๊ฒฝ ์ค์ (MacOS M1) (0) | 2023.01.21 |
---|---|
[IDE] VSCode React + .Net ๊ฐ๋ฐํ๊ฒฝ ์ค์ (MacOS M1) (0) | 2023.01.16 |
[IDE] VSCode C++ ๋๋ฒ๊น ํ๊ฒฝ ์ธํ (task.json, launch.json): Clang on MacOS (0) | 2022.12.15 |
[IDE] VSCode ์ ์ฉํ Extension ์ ๋ฆฌ (0) | 2022.06.09 |
[IDE] Visual Studio ์ค๋ ๊ณ ๊ธ ์ ์ฅ ์ต์ (0) | 2020.09.08 |