vscode λΉλ μ μ
Ref. https://sikaleo.tistory.com/101
Ubuntu 18.04μμ C++μ μ¬μ©νκΈ° μν μ μ μ 리
1. μ»΄νμΌλ¬ μ€μΉ
$ sudo apt install build-essential g++ gcc
2. νλ‘μ νΈ μμ± λ° ν΄λμ ꡬμ±
νλ‘μ νΈ νμΌμ μλ κ΅¬μ‘°λ‘ μμ±
- ${projectName}
- /bin
- /src
- main.cpp
/srcμμ μλ main.cppλ₯Ό μ»΄νμΌ νμ¬ μ€νκ°λ₯ν objective νμΌμ΄ /binμ μ μ₯λλ λ°©μ
μλ μ¬μ§κ³Ό κ°μ΄ ν경ꡬμΆμ ν΄μ€λ€
3. μ»΄νμΌλ¬ μ€μ
vscode μλ¨ λ°μμ [Terminal] - [Configure Default Build Task]λ₯Ό λλ₯΄λ©΄ νμ¬ μμ±μ€μΈ μΈμ΄(c++)μ λ§μΆ° tasks.jsonμ κΈ°λ³Έ ν νλ¦Ώ μ ν κ°λ₯
C/C++: g++ build active file μ μ ννμ!
λ€ μ€μ νλ©΄ μΌμͺ½κ³Ό κ°μ΄ ν΄λκ° κ΅¬μ±λ¨
λ§λ€μ΄μ§ tasks.json νμΌμ μλμ κ°μ΄ μμ νμ
λ³΅λΆ κ³ κ³
{
"version": "2.0.0",
"runner": "terminal",
"type": "shell",
"echoCommand": true,
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared",
"showReuseMessage": true,
"clear": false
},
"tasks": [
{
"type": "shell",
"label": "C/C++: g++ build active file",
"command": "/usr/bin/g++",
"args": [
// "-fdiagnostics-color=always",
"-g3",
"${file}",
"-o",
"${workspaceFolder}/bin/${fileBasenameNoExtension}"
],
"problemMatcher": {
"fileLocation": [
"relative",
"${workspaceFoler}"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
},
"group": {
"kind": "build",
"isDefault": true
}
},
{
"type": "shell",
"label": "execute",
"command": "cd ${workspaceFolder}/bin && ./${fileBasenameNoExtension}",
"group": {
"kind": "test",
"isDefault": true
}
},
]
}
μΈμΈν λ΄μ©μ jsonμ 곡λΆν΄μΌ μκ² μ§λ§ λ΄κ° μλ json νμΌ ν¬λ§·μ μ΄λ λ€
json ν¬λ§· μμ λͺ¨λ λ΄μ©λ€μ key:valueμ μμΌλ‘ μ΄λ£¨μ΄μ Έμμ
λ³΄ν΅ μμ κ°μ μμΌλ‘ μ΄λ£¨μ΄μ§ λ μλ€μ objectλΌκ³ λΆλ₯΄κ³ , μλ€λ€μ νΈμΆνκΈ°μ μ€κ΄νΈ {}κ° λμ¨λ€
κ°λ λκ΄νΈ []κ° λ³΄μ΄λ κ²½μ°κ° μλλ° μ΄λ λ€μ λ°°μ΄(array)κ° λμ΄μ λͺ μνλ€
3. λ¨μΆν€ μ€μ
[File] - [Preferences] - [Keyboard Shortcuts] λ©λ΄λ‘ λ€μ΄κ°μ λ¨μΆν€λ₯Ό μ€μ ν΄μ€λ€
μ΄ μμ jsonμΌλ‘ ν΄λ³΄μ
μ€λ₯Έμͺ½ μμ λ§μ°μ€λ₯Ό κ°μ Έλ€ λλ©΄ Open Keyboard Shortcuts(JSON) μ΄λΌλ λ²νΌμ λλ₯΄μ
μ΄λ¦¬λ keybindings.json νμΌ μμ μλ λ΄μ©μ 볡 λΆ ν΄μ€λ€
// Place your key bindings in this file to override the defaults
[
// build
{
"key": "ctrl+b",
"command": "workbench.action.tasks.build",
},
// run
{
"key": "ctrl+r",
"command": "workbench.action.tasks.test"
},
// replace keys for overlapping tasks
{
"key": "ctrl+shift+b",
"command": "workbench.action.toggleSidebarVisibility"
},
//
{
"key": "ctrl+shift+r",
"command": "workbench.action.openRecent"
},
]
4. νμΈ
λ€μ main.cppλ‘ λμμμ
Ctrl+b : λΉλ
Ctrl+r : μ€ν
μλμ κ°μ λͺ λ Ήμ΄κ° μ λλμ§ νμΈνλ€
Ctrl+Bλ₯Ό λλ μ λ, /bin νμΌμ objectiveνμΌμ΄ μκΈ°λ©΄μ λΉλνλ€
Ctrl+Rμ λλ μ λ, vscode μλ μͺ½μ μμΉν ν°λ―Έλ μ°½μ μ½λ λ΄μ©μ΄ μΆλ ₯λλ€
Leave a comment